SpringBoot Application的exclude不生效問題及排查
SpringBootApplication的exclude不生效問題排查
背景
在ManApplication
上添加了SpringBootApplication
中配置了
exclude={org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration.class}
但是在啟動過程了ElasticsearchAutoConfiguration
還是加載了,使用配置文件的方式就可以避免加載。
排查
首先懷疑是不是啟動的類加載了ElasticsearchAutoConfiguration
的初始化方法,查找無果。
于是想通過SpringBootApplication的啟動過程來排查。
SpringBootApplication的啟動入口是SpringApplication.run()
方法。
調(diào)用時序圖
可以參考以下:
在debug的過程中發(fā)現(xiàn)還有其他的@EnableAutoConfiguration
注解,更直白的說是jar包存在類中@SpringBootApplication
沒有exclude.
從EnableAutoConfigurationImportSelector
類可以看到getExclusions
的邏輯正好解釋了這一現(xiàn)象。
另外從注解可以直接達到,以后有關@…AutoConfiguration的應該找注解上的@Import
注解中的解析類,可以直達解析邏輯。
結論
1.使用配置的方式進行exclude
2.推動包含@EnableAutoConfiguration
的去掉,因為jar包內(nèi)不應該有。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot使用spring.config.import多種方式導入配置文件
本文主要介紹了SpringBoot使用spring.config.import多種方式導入配置文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05JavaWeb入門:HttpResponse和HttpRequest詳解
這篇文章主要介紹了Django的HttpRequest和HttpResponse對象,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2021-07-07Java數(shù)據(jù)結構及算法實例:插入排序 Insertion Sort
這篇文章主要介紹了Java數(shù)據(jù)結構及算法實例:插入排序 Insertion Sort,本文直接給出實例代碼,代碼中包含詳細注釋,需要的朋友可以參考下2015-06-06