SpringBoot程序启动加载过程

4.3.1元注解阐明:

@Target(ElementType.TYPE) 对哪个元素无效 对类无效
@Retention(RetentionPolicy.RUNTIME) 什么时候起作用 运行期无效
@Documented 是否反对生成文档
@Inherited 该注解是否能够被继承.

4.3.2 SpringBootConfiguration阐明

作用:标识主启动类是一个大型的配置文件,启动时会加载所有的小的配置文件.

@Configuration: 示意该类是一个配置类.

`@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Configurationpublic @interface SpringBootConfiguration {.....}` *   1*   2*   3*   4*   5

4.3.3 excludeFilters 阐明

阐明: 在springboot容器启动时,不须要加载某些过滤器.因为parent标签中定义了所有的关联的jar包文件信息.则启动时有可能导致意外的产生,所有须要提前剔除.

@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })

4.3.4 @AutoConfigurationPackage

阐明: 当程序启动时,会依据主启动类的包门路,扫描其子孙包,所以springboot当前写代码时应该在其子孙包下编辑.

4.3.5 AutoConfigurationImportSelector

阐明:该配置中外部集成了所有的SpringBoot中的选择器.这些选择器的次要的工作就是查看是否有本人选择器所治理的启动项的配置. 如果发现该启动项,那么选择器就会执行该启动项,从而实现了开箱即用的操