在 Spring Boot 3.0 中,Spring 团队对自动配置机制进行了重大变更,特别是 spring.factories
文件。spring.factories
文件已被 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件所取代。在springboot3.0+继续使用springboot2.0配置会显示 无法自动装配,找不到对应的bean
在 Spring Boot 3.0 中,需要将之前的 META-INF/spring.factories
文件迁移到 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件。新的配置方式更简洁,并且专注于自动配置类的声明。
示例
假之前的 META-INF/spring.factories
文件内容如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.eoffice.file.service.impl.MinIOFileStorageServiceImpl
现在需要创建一个新的文件 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
,并将内容改为:
com.eoffice.file.service.impl.MinIOFileStorageServiceImpl
步骤总结
- 删除原来的
META-INF/spring.factories
文件。 - 创建新的
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件。 - 将原来
spring.factories
文件中的自动配置类声明移到新的文件中。
示例文件结构
src
└── main
└── resources
└── META-INF
├── spring.factories (删除)
└── spring
└── org.springframework.boot.autoconfigure.AutoConfiguration.imports
这样,自动配置类 com.eoffice.file.service.impl.MinIOFileStorageService
就会被正确加载。通过这种方式,可以确保项目在升级到 Spring Boot 3.0 后能够继续正常运行。