Spring Boot自动配置

主程序类、主入口类

@SpringBootApplication;spring boot标注在某个类上说明这个类是spring boot的主配置类,spring boot就应该运行这个类的main方法来启动spring boot应用;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
@SpringBootConfiguration:spring boot的配置类
标注在某个类上,表示这是一个spring boot的配置类;
@Configuration:配置类傻瓜 来标志这个注解;
配置类----配置文件 配置类也是容器中的一个组件 @Component

@EnableAutoConfiguration:开启自动配置

以前我们需要的东西 spring boot自动帮我们配置,@EnableAutoConfiguration告诉spring boot开启自动配置功能,这样自动配置才能生效

@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
    String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";

    Class<?>[] exclude() default {};
@AutoConfigurationPackage:自动配置包
@Import({AutoConfigurationPackage.Registrar.class})
spring的底层注解@Import,给容器中导入一个组件;导入的组件由AutoConfigurationPackage.Registrar.class;
将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;
@Import({AutoConfigurationImportSelector.class})
给容器中导入组件?
EnableAutoConfigurationImportSelector:导入哪些组件的选择器;
将所有需要导入的组件以全雷鸣的方式返回;这些组件就会被添加到容器中;
会给容器中导入非常多的自动配置类(xxxAutoConfiguration):就是给容器中导入这个场景所需要的所有组件,并配置好这些组件
 
posted @ 2019-02-15 16:41  被爱的都有恃无恐  阅读(163)  评论(0编辑  收藏  举报