spring boot @EnableAutoConfiguration 导致CNF问题

9 篇文章 0 订阅
2 篇文章 0 订阅

最近在用 spring 构建插件架构时,发现如果被载入的spring 配置类包含 @EnableAutoConfiguration 注解,则会导致CNF (class not found) 问题。但奇怪的是,在容器中设置类加载器时,已经包含了插件依赖的包,还是报这个错,甚至,在调试时,直接用容器的类加载器去加载找不到的这个类,居然还找到了。由此确定报错的地方没有使用容器的类加载器。经过排查发现是因为配置类中加了@EnableAutoConfiguration这个注解。

官方解释,这个注解会根据当前类路径中包含的类来推断是否应该配置某些bean,问题就来了,这个猜测机制肯定会用到类加载器,否则如何载入bean?但没有看到任何地方提供方法来替换该类加载器,因此推测此加载器是封装在 spring 内部的。

因为用到 @EnableAutoConfiguration 注解的地方是为了提供插件调试用的简易容器实现,所以直接 @Profile(“ignored”) 来避免该配置类被载入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值