SpringBoot自动配置原理

@SpringBootApplication

表示为springboot应用,其实就是一个配置类:
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
这个配置类的这三条注解完成配置:

  • SpringBootConfiguration代表是个配置类,可以对application中的注解中的配置加入spring容器
  • EnableAutoConfiguration 表示对application进行自动配置
  • ComponentScan相当于spring 的xml中的包扫描配置,扫描包中的注解

如何自动配置

springboot会加载并运行application,然后生成一个SpringApplication对象

这个过程中有一个推断应用类型的方法,推断出是servlet

 


然后调用初始化方法,初始方法创建一个spring工厂实例用来生成spring的application

spring工厂会按照传入的字节码类型去查找配置文件,进行自动配置

 

原文地址:https://www.cnblogs.com/CooperXia-847550730/p/12940480.html