SpringBoot Application的exclude不生效问题及排查
SpringBootApplication的exclude不生效问题排查
背景
在ManApplication上添加了SpringBootApplication中配置了
exclude={org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration.class}但是在启动过程了ElasticsearchAutoConfiguration还是加载了,使用配置文件的方式就可以避免加载。
排查
首先怀疑是不是启动的类加载了ElasticsearchAutoConfiguration的初始化方法,查找无果。
于是想通过SpringBootApplication的启动过程来排查。
SpringBootApplication的启动入口是SpringApplication.run()方法。
调用时序图
可以参考以下:

在debug的过程中发现还有其他的@EnableAutoConfiguration注解,更直白的说是jar包存在类中@SpringBootApplication没有exclude.
从EnableAutoConfigurationImportSelector类可以看到getExclusions的逻辑正好解释了这一现象。

另外从注解可以直接达到,以后有关@…AutoConfiguration的应该找注解上的@Import注解中的解析类,可以直达解析逻辑。
结论
1.使用配置的方式进行exclude
2.推动包含@EnableAutoConfiguration的去掉,因为jar包内不应该有。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring依赖注入中的@Resource与@Autowired详解
这篇文章主要介绍了Spring依赖注入中的@Resource与@Autowired详解,提到Spring依赖注入,大家最先想到应该是@Resource和@Autowired,对于Spring为什么要支持两个这么类似的注解却未提到,属于知其然而不知其所以然,本文就来做详细讲解,需要的朋友可以参考下2023-09-09
从入门到实战详解如何使用Apache POI操作Word文档
Apache POI是Java生态中最流行的Microsoft Office文档操作库之一,它为Word文档提供了全面的API支持,下面我们来看看如何使用Apache POI进行word文档的操作吧2025-06-06
Java8中 LocalDate和java.sql.Date的相互转换操作
这篇文章主要介绍了Java8中 LocalDate和java.sql.Date的相互转换操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-12-12
springboot项目中PropertySource如何读取yaml配置文件
这篇文章主要介绍了springboot项目中PropertySource如何读取yaml配置文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01


最新评论