springBoot启动类

启动类上,使用该注解,定义要扫描的包
@ComponentScan(value ={"com.hollycrm,com.csc"})
因为@SpringBootApplication 会默认将扫描位置等于当前目录。详见@SpringBootApplication 的内容。
 
 
1.1 @SpringBootApplication
 
springBoot启动类
 
包含3个子注解
 
1.1.1
 @SpringBootConfiguration:Spring Boot的配置类;标注在某个类上,表示这是一个Spring Boot的配置类;
        @Configuration:配置类上来标注这个注解;配置类 ----- 配置文件;配置类也是容器中的一个组件;
            @Component 将类注入容器
 
1.1.2 自动 配置信息
@EnableAutoConfiguration                 Spring的底层注解@Import,给容器中导入一个组件
    @Import({EnableAutoConfigurationImportSelector.class}) 导入类
        EnableAutoConfigurationImportSelector extends AutoConfigurationImportSelector 中获取
springBoot启动类
给容器中导入非常多的自动配置类(xxxAutoConfiguration)
 
其中方法 getCandidateConfigurations() 调用loadFactoryNames()
springBoot启动类
 
扫描所有jar包类路径下  META-INF/spring.factories
把扫描到的这些文件的内容包装成properties对象
从properties中获取到EnableAutoConfiguration.class类(类名)对应的值,然后把他们添加在容器中。
springBoot启动类
 
 
1.1.3
 
扫描位置
@ComponentScan(excludeFilters = {        
   @Filter(type = FilterType.CUSTOM,classes = {TypeExcludeFilter.class}),
   @Filter(type = FilterType.CUSTOM,classes = {AutoConfigurationExcludeFilter.class})
})
 
默认是启动类的当前及其子目录。 也可自定义扫描包,在启动类使用注解。
@ComponentScan(value ={"com.hollycrm","com.csc"})
@SpringBootApplication