升級springboot3之自動配置導入失效問題及解決
升級springboot3之自動配置導入失效
解決辦法 (主動掃描加載META-INF/spring.factories下的自動配置類)
①.創(chuàng)建一個類實現(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; }
② 在啟動類加上import注解
@EnableDiscoveryClient @SpringBootApplication //導入剛剛創(chuàng)建的類 @Import(value = EnableAutoConfigurationImportSelector.class) public class Java17DemoApplication { public static void main(String[] args) { SpringApplication.run(Java17DemoApplication.class, args); } }
導致問題的原因
spring2 和 spring3的spi掃描路徑不一致
- springboot2掃描的是META-INF/spring.factories文件
- springboot3掃描的是META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.import
這是springboot2的掃描路徑
這是升級到了springboot3時 掃描的文件路徑
所以 升級到springboot3時 因為沒有META-INF/spring.factories了 所以這個文件下的自動配置類就沒有加載到ioc容器中
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java 讀寫Parquet格式的數(shù)據(jù)的示例代碼
本篇文章主要介紹了java 讀寫Parquet格式的數(shù)據(jù)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09使用java基礎類實現(xiàn)zip壓縮和zip解壓工具類分享
使用java基礎類寫的一個簡單的zip壓縮解壓工具類,實現(xiàn)了指定目錄壓縮到和該目錄同名的zip文件和將zip文件解壓到指定的目錄的功能2014-03-03解決mybatis一對多查詢resultMap只返回了一條記錄問題
小編接到領導一個任務需求,需要用到使用resultMap相關知識,在這小編記錄下這個問題的解決方法,對mybatis一對多查詢resultMap項目知識感興趣的朋友一起看看吧2021-11-11springboot + elasticsearch 實現(xiàn)聚合查詢的詳細代碼
文章介紹了如何在Spring Boot 2.2.6中使用Elasticsearch進行聚合查詢,重點在于通過API創(chuàng)建索引和映射,而不是使用Spring Data Elasticsearch的自動創(chuàng)建功能,文章還提到在創(chuàng)建映射時,Elasticsearch會自動為keyword類型添加keyword屬性,感興趣的朋友一起看看吧2025-02-02Spring?Cloud?Gateway編碼實現(xiàn)任意地址跳轉
這篇文章主要介紹了Spring?Cloud?Gateway編碼實現(xiàn)任意地址跳轉的相關資料,需要的朋友可以參考下2023-06-06