(三):springboot的自动装配原理
在自动装配原理中就是启动类上的@SpringBootApplication起到了关键性的作用
我们点开@SpringBootApplication,看到这个接口
其中的@EnableAutoConfiguration这个注解
再点开他
@Import(AutoConfigurationImportSelector.class)
再点开他
主要的是selectImports()这个方法,找到所有JavaConfig自动配置类的全限定名对应的class,然后将所有自动配置类加载到Spring容器中。
我们在看@SpringBootApplication注解里面另一个注解@SpringBootConfiguration
@SpringBootConfiguration有个我们很熟悉的注解@Configuration,@Configuration的一个方法proxyBeanMethods()通过下图
很多组件会装配到实体类上封装为一个bean,所以我们在application.properties中的关键字不能随意改,server.port、logging.level等等是固定的,应该springboot要确认能找到属性的值,
总结:@SpringBootConfiguration表示的是该类会作为Springboot的一个配置类,
@EnableAutoConfiguration表示开启自动配置功能,里面也实现了自动配置原理
@Configuration会把组件会装配到实体类上封装为一个bean,AutoConfigurationImportSelector的selectImports()这个方法,找到所有JavaConfig自动配置类的全限定名对应的class,然后将所有自动配置类加载到Spring容器中。bean有了,配置有了,相当于对象也有了,这就是自动配置.
@ComponentScan用来将包加入SpringIOC的包扫描,