spring启动时排除注入指定bean
起因:
项目中引用了其他项目的公共包依赖,公共包中有第三方的配置信息(不合理,不规范),导致必须在配置文件中加入这样配置(写了一堆无用的配置信息还容易报错),启动时注入这些bean时找不到配置信息,导致启动失败
临时解决方案:
排除这些无用且需要读取配置文件的bean
资料参考地址1:
https://www.jb51.net/article/218661.htm
使用
排除指定类
@ComponentScan(basePackages = {"com.xx.xx.*"}, excludeFilters =@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {xxx.class}))
或
排除某些包
@ComponentScan(excludeFilters =
{
@ComponentScan.Filter(type = FilterType.REGEX,pattern = "org.x.xx.other.*")
})
示例代码
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
@SpringBootApplication
@MapperScan("org.cuour.sqlserver.dao.mapper")
@ComponentScan(value = "org.x.xx.**",
excludeFilters = {@ComponentScan.Filter(type = FilterType.REGEX,
pattern = {"org.x.xx.util.SerialNoUtils","org.x.xx.util.WorkWXUtil"})})
public class AppStartApplication {
public static void main(String[] args) {
SpringApplication.run(AppStartApplication.class, args);
}
}
建议方案
将第三方配置文件单独搞一个模块,易维护
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY