1.spring boot自动配置类的读取流程
从@SpringBootApplication开始:
-
元注解 @Target(ElementType.TYPE) 设置当前注解可以标记在哪里 @Retention(RetentionPolicy.RUNTIME) 当注解标注的类编译以什么方式保留,runtime为可被jvm虚拟机编拟 @Documented java doc可以生成注解信息 @Inherited 是否会被继承
-
@SpringBootConfiguration 元注解 @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Configuration 标注为配置类
-
@EnableAutoConfiguration 开启自动配置功能 元注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import(AutoConfigurationPackages.Registrar.class) register我们断点进去就会发现返回的就是类路径 所以这个注解的作用就是将当前配置类所在包保存在BasePackages的Bean中。供Spring内部使用 @Import(AutoConfigurationImportSelector.class) AutoConfigurationImportSelector实现的是DeferredImportSelector,而非ImportSelector,ImportSelector是通过selectImport方法通过传入类的完整限定名的数组来交由spring底层创建bean。
-