升級(jí)springboot3之自動(dòng)配置導(dǎo)入失效問題及解決
升級(jí)springboot3之自動(dòng)配置導(dǎo)入失效
解決辦法 (主動(dòng)掃描加載META-INF/spring.factories下的自動(dòng)配置類)
①.創(chuàng)建一個(gè)類實(shí)現(xiàn)DeferredImportSelector和BeanClassLoaderAware類
public class EnableAutoConfigurationImportSelector implements DeferredImportSelector, BeanClassLoaderAware { private ClassLoader classLoader; @Override public String[] selectImports(AnnotationMetadata importingClassMetadata) { List<String> configurations = SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class, classLoader); if (configurations.size() != 0){ return StringUtils.toStringArray(configurations); } return new String[0]; } @Override public void setBeanClassLoader(ClassLoader classLoader) { this.classLoader = classLoader; }
② 在啟動(dòng)類加上import注解
@EnableDiscoveryClient @SpringBootApplication //導(dǎo)入剛剛創(chuàng)建的類 @Import(value = EnableAutoConfigurationImportSelector.class) public class Java17DemoApplication { public static void main(String[] args) { SpringApplication.run(Java17DemoApplication.class, args); } }
導(dǎo)致問題的原因
spring2 和 spring3的spi掃描路徑不一致
- springboot2掃描的是META-INF/spring.factories文件
- springboot3掃描的是META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.import
這是springboot2的掃描路徑
這是升級(jí)到了springboot3時(shí) 掃描的文件路徑
所以 升級(jí)到springboot3時(shí) 因?yàn)闆]有META-INF/spring.factories了 所以這個(gè)文件下的自動(dòng)配置類就沒有加載到ioc容器中
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java 讀寫Parquet格式的數(shù)據(jù)的示例代碼
本篇文章主要介紹了java 讀寫Parquet格式的數(shù)據(jù)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09使用java基礎(chǔ)類實(shí)現(xiàn)zip壓縮和zip解壓工具類分享
使用java基礎(chǔ)類寫的一個(gè)簡(jiǎn)單的zip壓縮解壓工具類,實(shí)現(xiàn)了指定目錄壓縮到和該目錄同名的zip文件和將zip文件解壓到指定的目錄的功能2014-03-03解決mybatis一對(duì)多查詢r(jià)esultMap只返回了一條記錄問題
小編接到領(lǐng)導(dǎo)一個(gè)任務(wù)需求,需要用到使用resultMap相關(guān)知識(shí),在這小編記錄下這個(gè)問題的解決方法,對(duì)mybatis一對(duì)多查詢r(jià)esultMap項(xiàng)目知識(shí)感興趣的朋友一起看看吧2021-11-11springboot + elasticsearch 實(shí)現(xiàn)聚合查詢的詳細(xì)代碼
文章介紹了如何在Spring Boot 2.2.6中使用Elasticsearch進(jìn)行聚合查詢,重點(diǎn)在于通過API創(chuàng)建索引和映射,而不是使用Spring Data Elasticsearch的自動(dòng)創(chuàng)建功能,文章還提到在創(chuàng)建映射時(shí),Elasticsearch會(huì)自動(dòng)為keyword類型添加keyword屬性,感興趣的朋友一起看看吧2025-02-02Spring?Cloud?Gateway編碼實(shí)現(xiàn)任意地址跳轉(zhuǎn)
這篇文章主要介紹了Spring?Cloud?Gateway編碼實(shí)現(xiàn)任意地址跳轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下2023-06-06SpringBoot詳解shiro過濾器與權(quán)限控制
當(dāng)shiro被運(yùn)用到web項(xiàng)目時(shí),shiro會(huì)自動(dòng)創(chuàng)建一些默認(rèn)的過濾器對(duì)客戶端請(qǐng)求進(jìn)行過濾。比如身份驗(yàn)證、授權(quán)的相關(guān)的,這篇文章主要介紹了shiro過濾器與權(quán)限控制2022-07-07Ehcache簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Ehcache簡(jiǎn)介,使用Spring的AOP進(jìn)行整合,可以靈活的對(duì)方法的返回結(jié)果對(duì)象進(jìn)行緩存2017-07-07