@SpringBootApplication注解到底做了什么,你真的了解吗?

简介: @SpringBootApplication注解到底做了什么,你真的了解吗?

@SpringBootApplication

image.png

@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 {
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
  String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
  /**
   * Exclude specific auto-configuration classes such that they will never be applied.
   * @return the classes to exclude
   */
  Class<?>[] exclude() default {};
  /**
   * Exclude specific auto-configuration class names such that they will never be
   * applied.
   * @return the class names to exclude
   * @since 1.3.0
   */
  String[] excludeName() default {};
}

注意到AutoConfigurationImportSelector类

image.png

返回AutoConfigurationImportSelector.AutoConfigurationEntry基础上, AnnotationMetadata import的@Configuration类。


autoConfigurationMetadata - 自动配置的元数据


annotationMetadata - 配置类的注释元数据

返回:应导入自动配置

image.png

获得配置

返回应该被视为自动配置类名。 默认情况下,此方法将使用加载候选人SpringFactoriesLoader与getSpringFactoriesLoaderFactoryClass()


元数据 - 源元数据


属性-将annotation attributes

返回:候选配置列表

image.png

  • 看下其中的断言中指定的

META-INF/spring.factories

为我们实现了很多自动装配

image.png

我们随便看下这个类

image.png

内嵌的 tomcat

image.png

其实就是开启 springMVC,这只是 sb 批量自动装配的一个组件

image.png

ServletWebServerFactoryAutoConfiguration

image.png

自动装配 - 启动一个内嵌的 tomcat

image.png

目录
相关文章
|
XML Java 数据格式
SpringIoC基于注解配置
一、Bean注解标记和扫描 (IoC) 二、组件(Bean)作用域和周期方法注解 三、Bean属性赋值:引用类型自动装配 (DI) 四、Bean属性赋值:基本类型属性赋值 (DI)
67 0
|
Java Spring
Spring @Inject注解
Spring @Inject注解
|
XML Java 测试技术
详细讲解Spring中的@Bean注解
详细讲解Spring中的@Bean注解
920 0
详细讲解Spring中的@Bean注解
Zp
|
小程序 Java Spring
记@ComponentScan注解的坑
记@ComponentScan注解的坑
Zp
459 0
一文深入了解ConfigurationProperties注解
一文深入了解ConfigurationProperties注解
391 0
一文深入了解ConfigurationProperties注解
|
Java 网络架构 开发者
SpringBootApplication 注解和 RestController 注解|学习笔记
快速学习 SpringBootApplication 注解和 RestController 注解
122 0
SpringBootApplication 注解和 RestController 注解|学习笔记
|
Java Spring
@ConfigurationProperties注解的理解和使用
@ConfigurationProperties注解的理解和使用
|
XML Java 数据格式
@Bean 注解
@Bean 注解
2999 5
|
开发框架 Java Spring
Spring - 属性注入之注解(@Autowired、@Qualifier、@Resource)
Spring - 属性注入之注解(@Autowired、@Qualifier、@Resource)
262 0
Spring - 属性注入之注解(@Autowired、@Qualifier、@Resource)
|
XML Java 数据格式
就是要让你彻底学会 @Bean 注解(下)
就是要让你彻底学会 @Bean 注解(下)
就是要让你彻底学会 @Bean 注解(下)