springboot自动装配原理
2021-10-06 23:42:44 14 举报
学习笔记
作者其他创作
大纲/内容
表明启动自动装配
@AutoConfigurationPackage和@ComponentScan一样,也是将主配置类所在的包及其子包里面的组件扫描到IOC容器中,但是区别是@AutoConfigurationPackage扫描@Enitity、@MapperScan等第三方依赖的注解,@ComponentScan只扫描@Controller/@Service/@Component/@Repository这些常见注解。所以这两个注解扫描的对象是不一样的。
@EnableAutoConfiguration
spring.factories中包含了以key-value格式,包含了key为EnableAutoConfiguration的全类名,value是一个AutoConfiguration类名的列表,以逗号分隔。在springboot启动时,所有的自动装配类都会被加载一遍到ioc容器中。 上述的每一个自动装配类中都有@EnableConfigurationProperties(XXXProperties.class)注解,最终找到了其对应的XXXProperties类。至此,我们大致可以了解。在全局配置的属性如:server.port等,通过@ConfigurationProperties注解,绑定到对应的XxxxProperties配置实体类上封装为一个bean,然后再通过@EnableConfigurationProperties注解导入到Spring容器中。
public void selectImports(){ getCandidateConfigurations(){ spring.factories; }}
@ComponentScan
@Import(AutoConfigurationImportSelector.class)
@SpringBootConfiguration
这个注解的底层是一个@Configuration注解,意思被@Configuration注解修饰的类是一个IOC容器,支持JavaConfig的方式来进行配置
这个就是扫描注解的意思,默认扫描当前类所在的包及其子包下包含的注解,将@Controller/@Service/@Component/@Repository等注解加载到IOC容器中;
自动装配的核心注解
@AutoConfigurationPackage
收藏
0 条评论
下一页