關(guān)于spring.factories失效原因分析及解決
spring.factories失效原因及解決
那么在 Spring Boot 項目中,如果被 Spring 容器管理的 bean 不在 Spring Boot 包掃描路徑下,怎么辦?
解決Spring Boot 中不能被默認路徑掃描的配置類的方式,有 2 種:
- (1)在 Spring Boot 主類上使用 @Import 注解
- (2)使用 spring.factories 文件
失效的原因
如果是缺失@Component\@Configuration之類的注解,或者在spring.factories文件忘記添加類,就沒啥好講的。
如果是缺失@EnableAutoConfiguration那就加上,不過如果已經(jīng)有@SpringBootApplication注解,就不是這個問題,因為它已經(jīng)包含@EnableAutoConfiguration。
如果不是上面兩類問題,那么考慮以下2點:
1.被依賴包的打包方式
注意被依賴包的pom文件是否設(shè)置了依賴包的打包模式是不是pom
即有如下配置:
<packaging>pom</packaging>
使用pom打包時,不會生成jar包,自然在引入時就沒有自動注入的過程,因此刪掉它,重新編譯可以解決問題。
2.springboot版本問題
Spring Boot 2.7中不推薦使用/META-INF/spring.factories文件,并且在Spring Boot 3將移除對/META-INF/spring.factories的支持。
新的寫法是創(chuàng)建一個新的文件:
/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
內(nèi)容直接放配置類即可(注意有spring目錄)
比如這樣:
com.example.swagger.SwaggerAutoConfiguration
如果springboot版本高于2.7,切換到新寫法試試。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot中關(guān)于自動建表,無法更新字段的問題
這篇文章主要介紹了springboot中關(guān)于自動建表,無法更新字段的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02IntelliJ IDEA搜索整個項目進行全局替換(有危險慎用)
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA搜索整個項目進行全局替換(有危險慎用),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10SpringBoot項目創(chuàng)建單元測試的流程步驟
在日常開發(fā)的過程中,對自己的代碼進行單元測試是個非常重要的過程,一方面可以最小范圍的針對一個方法進行測試,提高測試的簡便性以及測試的成本,本篇文章主要是為了總結(jié)一下如何優(yōu)雅的在Springboot項目中使用單元測試去測試功能,需要的朋友可以參考下2024-11-11