Spring Boot不同版本自动配置文件加载位置咨询
Spring Boot自动配置文件加载位置的版本差异
旧版本(1.x ~ 2.6及更早)
在Spring Boot 1.x(如1.4.2.RELEASE)以及2.6及更早版本中,自动配置类的加载依赖于spring-boot-autoconfigure-*.jar中的META-INF/spring.factories文件:
- 需查找文件内的
org.springframework.boot.autoconfigure.EnableAutoConfiguration键,该键对应的值是所有自动配置类的全限定名列表。 - Spring会加载这些配置类,当类上的
@Conditional*系列注解条件匹配时,自动创建对应的Bean实例。
2.7及之后版本的变更
从Spring Boot 2.7开始,官方引入了新的自动配置注册机制:
- 自动配置类的定义迁移到了
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中,文件直接列出需要加载的自动配置类全限定名。 - 2.7版本保持了对旧版
spring.factories方式的兼容性,两种方式可共存,但官方推荐使用新的AutoConfiguration.imports文件。 - 升级到Spring Boot 3.0后,官方彻底移除了对
spring.factories中EnableAutoConfiguration键的支持,仅保留AutoConfiguration.imports这一种自动配置类注册方式。
内容的提问来源于stack exchange,提问作者Abe
相关产品推荐
相关产品推荐

