SpringBoot自动装配原理
在main方法中,我们调用springboot.run()
方法启动springboot应用,然后在这个方法里面有一个refreshcontext()
方法,刷新容器,会去解析我们主方法上面的@SpringbootApplication
注解
把我们的bean注入到容器中,在@SpringbootApplication
这个注解中,他是一个复合注解,其中有一个叫做@EnableAutoConfiguration
,在这个注解中他会import一个类AutoConfigurationImportSelector.class
,这个类会在spring-boot-autoconfigure包下的/META-INF/spring.factories这个文件下,去加载里面已经写好的很多的autoconfigure自动配置类,在这些类中,有很多的条件注解例如@ConditionalOnMissingBean
和@ConditionalOnClass
,然后会把相应的bean自动注入到容器中
SpringBoot 自定义starter
starter就是Spring Boot快速整合第三方框架的依赖
首先使用@ConfigurationProperties
声明一个配置类
1 | "hobocool") (prefix = |
编写一个业务类
1 | public class TokenService { |
编写自动配置类,讲业务类和配置类注入至容器中
1 |
|
在resource下创建META-INF/spring.factories文件,我们填下以下内容,spring boot会自动去扫描其并注入容器中
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.ccsu.config.TokenAutoConfiguration |
之后是命令行输入mvn clean install
讲其打包放入我们自己的maven仓库中,之后通过以下即可直接引用
1 | <dependency> |
注意:如果想让在使用的时候出现参数提示,需要在stater中引入spring-boot-configuration-processor
包
starter总结
四步走
定义配置文件类,例如TokenProperties,使用
@ConfigurationProperties
定义自动配置类,例如TokenAutoConfiguration,使用注解
@Configuration @EnableConfigurationProperties
把配置类注入进来,同时注入一些业务类resources下创建META-INF/spring.factories文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.ccsu.config.TokenAutoConfiguration
mvn clean install打包进入我们自己的maven仓库,就可以直接引入了