自动装配原理介绍
原理:当我们启动程序的时候,首先在META-INF/spring.factories包下扫描所有的配置类,然后根据该下的所有配置类中是否满足@ConditionOnClass注解内容(当然还有其他条件,就不一一说了),满足将会自动加载该配置类,当我们导入某个启动器的时候,该启动所需的所有配置类将会自动加载,也就是满足@ConditionOnClass。
自动装配默认配置原理介绍
原理:所有的启动器都有许多的XXXAutoConfiguration配置类(想容器中自动配置组件),而该配置类下都有多个XXXProperties配置文件,并且该Properties配置文件都有一个配置实体类进行绑定,当我们不修改配置的时候会默认加载Properties配置文件下的默认信息
如何修改配置
原理:上面我们说到所有的Properties配置文件都会有对应的配置实体类.java,我们只需修改配置实体类中的属性便可以修改配置信息。比如:
spring
activemq:
non-block-redelivery
这个配置信息代表的意思是:某个自动配置类(ActiveMQAutoConfiguration)绑定了ActiveMQProperties.java类的文件,而non-block-redelivery就是该配置实体类中的一个配置属性,我们对其赋值便可以修改该配置信息。
技巧:如何查看哪些Configuration被加载
在配置文件中输入下面语句便可以查询哪些配置被加载或不被加载
debug=true