Springboot的自动配置
Springboot
的自动配置
@SpringbootApplication
:
@SpringbootConfiguration
@Configuration
@ComponentScan
@EnableAutoConfiguration
@Import(AutoConfigurationImportSelector.class)
关键点是
AutoConfigurationImportSelector
,它通过SpringFactories
机制加载配置文件,有个方法的作用就是去扫描了META-INF/spring.factories
文件,扫描出所有key是EnableAutoConfiguration
或者AutoConfiguration
的value值,然后再通过@Conditional
注解过滤掉不必要的自动配置类,这个@Conditional
注解就相当于if,只有满足特定条件时候才会注册bean
ApplicationContext
就是IoC
容器
Springboot
启动流程
创建IoC容器
加载源配置类
通常是
main
方法所在的类,而且会被注解@SpringbootApplication
所修饰加载并处理所有的配置类
Springboot
会自动找到所有的配置类,然后加载和处理它们找出源配置类,根据原配置类进行递归处理,其实这个时候就是区递归扫描
@Component
注解和@Import
注解@ComponentScan
注解就是对指定的package进行扫描,如果没有指定package,默认扫描当前main所在的包;@Import
注解它有三种导入包的方式,分别是导入普通类,导入一个选择器ImportSelector
,导入一个注册器,如果导入普通类,那么就必须指定某个package和某个类的class对象非常麻烦,如果导入注册器,注册器其实是对@Bean方法的一个补充,所以这里选的是导入一个选择器实例化所有的单例
Bean
依赖注入和自动装配属于其中的环节
启动
web
服务器
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.