SpringBoot升级3.2出现问题: @ConditionalOnMissingBean did not specify a using type,name or annotation......

1事故背景小编在一家外企上班,最近项目要求升级springboot至3.2,没错就是上星期刚更新的3.2版本,于是就当我正以为切换version就完事的时候报错了(涉密项目无代码展示),如下所示。

Caused by: java.lang.IllegalStateException: @ConditionalOnMissingBean did not specify a bean using type, name or annotation and the attempt to deduce the bean's type failed.......
 

2过程刚开始翻阅了spring官方提供的升级3.2的文档Home · spring-projects/spring-boot Wiki · GitHub

其中其实是有不少解决方案的,可根据以上链接自行查询

然后小编就酣畅淋漓地把所有跟依赖注入的解决方案都试过一边了(因为报错的是自动装配的注解),但是也没有什么用。

3重点:然后属实无奈,我就用了一个low的方案。

1)首先报这种框架底层的错误,那必然是跟代码无关,换句话说就是dependency的问题。

2)其次分析了一下既然是新的版本,那必然会抛弃一些旧的jar包依赖,换句话说就是不兼容。

3)答案就是控制变量法,先拉一个新的分支,然后把代码全注释或删了,把pom文件的依赖全注释掉,先让空壳项目跑起来,跑起来之后一个一个解开注释掉的依赖,轮到哪个报错,便是答案所在。

4解决:最终发现项目中spring-web的依赖版本太低导致的,查询资料后发现,springboot3.2默认的spring-web是6.1.0的(公司的是6.0.14),于是在pom文件把它的version改为6.1.1便解决了问题(6.1.0和6.1.1都可以)

文章记录一下解决思路,请大家多多支持小编哈。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值