springboot主配置类注解解析

springboot主配置类的注解是

@SpringBootApplication



他等同于这三个注解:
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })


@SpringBootConfiguration的意思是这个主程序也是springboot里面的一个配置类
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })就是同一个包扫描,指定扫描那些包

核心是

@EnableAutoConfiguration
他由这两个注解组成
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)

@AutoConfigurationPackage是自动配置包,里面也是由import注解组成,它的作用是利用register给熔铸中批量注册一些组件,将指定包下的所有组件注册到容器中,

如图,application在server包下,那么扫描的就是server包下的所有包和其所有组件。




 


原文地址:https://www.cnblogs.com/chaogehahaha/p/15743543.html