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)象。

另外從注解可以直接達(dá)到,以后有關(guān)@…AutoConfiguration的應(yīng)該找注解上的@Import注解中的解析類,可以直達(dá)解析邏輯。
結(jié)論
1.使用配置的方式進(jìn)行exclude
2.推動包含@EnableAutoConfiguration的去掉,因為jar包內(nèi)不應(yīng)該有。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis?resultMap?id標(biāo)簽的錯誤使用方式
這篇文章主要介紹了MyBatis?resultMap?id標(biāo)簽的錯誤使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Spring依賴注入中的@Resource與@Autowired詳解
這篇文章主要介紹了Spring依賴注入中的@Resource與@Autowired詳解,提到Spring依賴注入,大家最先想到應(yīng)該是@Resource和@Autowired,對于Spring為什么要支持兩個這么類似的注解卻未提到,屬于知其然而不知其所以然,本文就來做詳細(xì)講解,需要的朋友可以參考下2023-09-09
從入門到實戰(zhàn)詳解如何使用Apache?POI操作Word文檔
Apache?POI是Java生態(tài)中最流行的Microsoft?Office文檔操作庫之一,它為Word文檔提供了全面的API支持,下面我們來看看如何使用Apache?POI進(jìn)行word文檔的操作吧2025-06-06
Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作
這篇文章主要介紹了Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
Spring security自定義用戶認(rèn)證流程詳解
這篇文章主要介紹了Spring security自定義用戶認(rèn)證流程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
springboot項目中PropertySource如何讀取yaml配置文件
這篇文章主要介紹了springboot項目中PropertySource如何讀取yaml配置文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01

