SpringBoot Application的exclude不生效問(wèn)題及排查
SpringBootApplication的exclude不生效問(wèn)題排查
背景
在ManApplication上添加了SpringBootApplication中配置了
exclude={org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration.class}但是在啟動(dòng)過(guò)程了ElasticsearchAutoConfiguration還是加載了,使用配置文件的方式就可以避免加載。
排查
首先懷疑是不是啟動(dòng)的類(lèi)加載了ElasticsearchAutoConfiguration的初始化方法,查找無(wú)果。
于是想通過(guò)SpringBootApplication的啟動(dòng)過(guò)程來(lái)排查。
SpringBootApplication的啟動(dòng)入口是SpringApplication.run()方法。
調(diào)用時(shí)序圖
可以參考以下:

在debug的過(guò)程中發(fā)現(xiàn)還有其他的@EnableAutoConfiguration注解,更直白的說(shuō)是jar包存在類(lèi)中@SpringBootApplication沒(méi)有exclude.
從EnableAutoConfigurationImportSelector類(lèi)可以看到getExclusions的邏輯正好解釋了這一現(xiàn)象。

另外從注解可以直接達(dá)到,以后有關(guān)@…AutoConfiguration的應(yīng)該找注解上的@Import注解中的解析類(lèi),可以直達(dá)解析邏輯。
結(jié)論
1.使用配置的方式進(jìn)行exclude
2.推動(dòng)包含@EnableAutoConfiguration的去掉,因?yàn)閖ar包內(nèi)不應(yīng)該有。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot中的ApplicationListener事件監(jiān)聽(tīng)器使用詳解
- 解決springboot讀取application.properties中文亂碼問(wèn)題
- SpringBoot中application.properties與application.yml區(qū)別小結(jié)
- springboot項(xiàng)目中application.properties無(wú)法變成小樹(shù)葉問(wèn)題解決方案
- SpringBoot實(shí)現(xiàn)application配置信息加密
- idea創(chuàng)建springboot項(xiàng)目,Application.java不能運(yùn)行問(wèn)題及解決
相關(guān)文章
MyBatis?resultMap?id標(biāo)簽的錯(cuò)誤使用方式
這篇文章主要介紹了MyBatis?resultMap?id標(biāo)簽的錯(cuò)誤使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
Spring依賴(lài)注入中的@Resource與@Autowired詳解
這篇文章主要介紹了Spring依賴(lài)注入中的@Resource與@Autowired詳解,提到Spring依賴(lài)注入,大家最先想到應(yīng)該是@Resource和@Autowired,對(duì)于Spring為什么要支持兩個(gè)這么類(lèi)似的注解卻未提到,屬于知其然而不知其所以然,本文就來(lái)做詳細(xì)講解,需要的朋友可以參考下2023-09-09
Netty分布式固定長(zhǎng)度解碼器實(shí)現(xiàn)原理剖析
這篇文章主要為大家介紹了Netty分布式固定長(zhǎng)度解碼器原理剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Nexus配置npm私有倉(cāng)庫(kù)全過(guò)程
本文介紹企業(yè)內(nèi)網(wǎng)環(huán)境下使用Nexus搭建私有npm倉(cāng)庫(kù),通過(guò)代理緩存和統(tǒng)一管理提升依賴(lài)下載效率與安全性,解決公共倉(cāng)庫(kù)網(wǎng)絡(luò)依賴(lài)問(wèn)題,并指導(dǎo)401認(rèn)證配置2025-08-08
Mybatis配置文件之動(dòng)態(tài)SQL配置備忘錄
這篇文章主要介紹了Mybatis配置文件之動(dòng)態(tài)SQL配置備忘錄的相關(guān)資料,需要的朋友可以參考下2017-05-05
從入門(mén)到實(shí)戰(zhàn)詳解如何使用Apache?POI操作Word文檔
Apache?POI是Java生態(tài)中最流行的Microsoft?Office文檔操作庫(kù)之一,它為Word文檔提供了全面的API支持,下面我們來(lái)看看如何使用Apache?POI進(jìn)行word文檔的操作吧2025-06-06
Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作
這篇文章主要介紹了Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
Spring security自定義用戶(hù)認(rèn)證流程詳解
這篇文章主要介紹了Spring security自定義用戶(hù)認(rèn)證流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
springboot項(xiàng)目中PropertySource如何讀取yaml配置文件
這篇文章主要介紹了springboot項(xiàng)目中PropertySource如何讀取yaml配置文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01

