關(guān)于spring.factories失效原因分析及解決
spring.factories失效原因及解決
那么在 Spring Boot 項(xiàng)目中,如果被 Spring 容器管理的 bean 不在 Spring Boot 包掃描路徑下,怎么辦?
解決Spring Boot 中不能被默認(rèn)路徑掃描的配置類的方式,有 2 種:
- (1)在 Spring Boot 主類上使用 @Import 注解
- (2)使用 spring.factories 文件
失效的原因
如果是缺失@Component\@Configuration之類的注解,或者在spring.factories文件忘記添加類,就沒啥好講的。
如果是缺失@EnableAutoConfiguration那就加上,不過如果已經(jīng)有@SpringBootApplication注解,就不是這個(gè)問題,因?yàn)樗呀?jīng)包含@EnableAutoConfiguration。
如果不是上面兩類問題,那么考慮以下2點(diǎn):
1.被依賴包的打包方式
注意被依賴包的pom文件是否設(shè)置了依賴包的打包模式是不是pom
即有如下配置:
<packaging>pom</packaging>
使用pom打包時(shí),不會(huì)生成jar包,自然在引入時(shí)就沒有自動(dòng)注入的過程,因此刪掉它,重新編譯可以解決問題。
2.springboot版本問題
Spring Boot 2.7中不推薦使用/META-INF/spring.factories文件,并且在Spring Boot 3將移除對/META-INF/spring.factories的支持。
新的寫法是創(chuàng)建一個(gè)新的文件:
/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
內(nèi)容直接放配置類即可(注意有spring目錄)
比如這樣:
com.example.swagger.SwaggerAutoConfiguration
如果springboot版本高于2.7,切換到新寫法試試。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
對SpringBoot項(xiàng)目Jar包進(jìn)行加密防止反編譯
最近項(xiàng)目要求部署到其他公司的服務(wù)器上,但是又不想將源碼泄露出去,要求對正式環(huán)境的啟動(dòng)包進(jìn)行安全性處理,防止客戶直接通過反編譯工具將代碼反編譯出來,本文介紹了如何對SpringBoot項(xiàng)目Jar包進(jìn)行加密防止反編譯,需要的朋友可以參考下2023-10-10詳解Springboot中的異步、定時(shí)、郵件任務(wù)
這篇文章主要介紹了Springboot中的異步、定時(shí)、郵件任務(wù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-11-11Spring Boot 快速搭建微服務(wù)框架詳細(xì)教程
SpringBoot是為了簡化Spring應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等而出現(xiàn)的,使用它可以做到專注于Spring應(yīng)用的開發(fā),而無需過多關(guān)注XML的配置。本文重點(diǎn)給大家介紹Spring Boot 快速搭建微服務(wù)框架詳細(xì)教程,需要的的朋友參考下吧2017-09-09springboot中關(guān)于自動(dòng)建表,無法更新字段的問題
這篇文章主要介紹了springboot中關(guān)于自動(dòng)建表,無法更新字段的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02IntelliJ IDEA搜索整個(gè)項(xiàng)目進(jìn)行全局替換(有危險(xiǎn)慎用)
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA搜索整個(gè)項(xiàng)目進(jìn)行全局替換(有危險(xiǎn)慎用),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10Java集合框架Collections原理及用法實(shí)例
這篇文章主要介紹了Java集合框架Collections原理及用法實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08SpringBoot項(xiàng)目創(chuàng)建單元測試的流程步驟
在日常開發(fā)的過程中,對自己的代碼進(jìn)行單元測試是個(gè)非常重要的過程,一方面可以最小范圍的針對一個(gè)方法進(jìn)行測試,提高測試的簡便性以及測試的成本,本篇文章主要是為了總結(jié)一下如何優(yōu)雅的在Springboot項(xiàng)目中使用單元測試去測試功能,需要的朋友可以參考下2024-11-11詳解Spring AOP的原理與實(shí)現(xiàn)方式
Spring框架是一個(gè)功能強(qiáng)大且靈活的企業(yè)級(jí)應(yīng)用程序開發(fā)框架,其中最重要的特性之一就是面向切面編程(AOP),我們今天這篇文章將從源碼和案例的角度詳細(xì)介紹Spring AOP的思想、原理和實(shí)現(xiàn)方式2023-07-07