SpringBoot自动配置的底层实现

SpringBoot的自动配置功能可以说是其最引以为傲的功能,下面为其底层实现原理

  • 之前用Spring、SpringMVC开发时,自己想要实现某些功能,比如Http解码、视图解析器、文件上传解析器等等,一般做法都是将某个组件注入容器中,也就是说,功能配置的核心就是将功能组件注入到IOC容器中,框架才会帮助我们实现相应的功能
  • 那么在SpringBoot实现自动配置的功能时,首先SpringBoot在加载时会自动载入所有开发环境下的自动配置类xxxAutoConfiguration
  • 在不同的开发环境中,会以条件来生效不同的配置类
  • 比如@ConditionOnClass如果容器中存在某些类那么就自动将某个配置类注入容器,SpringBoot底层多是以这种条件注入的方式来进行自动配置类的加载注入
  • 在配置文件中同样会以类似@ConditionOnMissing的方式来判断容器中是否已经存在某些组件,也就是说,如果用户已经将自定义的配置注入容器中,那么SpringBoot就会自动识别,以用户的配置为准
  • 在类中的属性大多都会绑定xxxProperties文件中的值,那么用户在使用时,就可以根据自己的需要,来更改SpringBoot核心配置文件application.properties中的值以达到更改功能的目的,这其实也就是我们更改配置文件的底层原理,这些配置信息在官网都能找得到官方文档

我们可以在配置文件中加入debug=true来检查项目运行时哪些自动配置文件的生效(Positive)和不生效(Negative)

你可能感兴趣的:(SpringBoot2,SpringBoot2)