5.springboot自动装配的实现原理

springboot自动装配的实现原理:

我理解的自动装配是:其实EnableAutoConfiguration上有个Import注解,这个注解里面包含了一个实现了ImportSelector的类,在它里面的selectImports方法可以选择注入需要的Bean,
分析源码可以看到,
第一步:扫描META-INF/spring-autoconfigure-metadata.properties文件,它里面定义了很多的Conditional条件,例如ConditionalOnClass
第二步:扫描META-INF/spring.factories,结合前面扫描到的进行过滤,原因是很多@Configuration其实是依托于其它的框架来加载的,如果当前classpath下没有相关的依赖,则意味着这些类没必要加载,所以通过这种条件过滤可以有效的减少@Configuration类的数量从而降低启动时间。

Spring Boot启动的时候会通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中的所有自动配置类,并对其进行加载,而这些自动配置类都是以AutoConfiguration结尾来命名的,它实际上就是一个JavaConfig形式的Spring容器配置类,它能通过以Properties结尾命名的类中取得在全局配置文件中配置的属性如:server.port,而XxxxProperties类是通过@ConfigurationProperties注解与全局配置文件中对应的属性进行绑定的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值