本文主要是介绍Spring 无法找到指定的 bean 但是这个bean实际上是存在的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
先说结论:
通过applicationContext手动执行时发现异常:org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘XXX’
确定是由于缺少依赖的组件导致的,该异常一般产生原因:
- 对应的 bean 没有添加注解;
- 对应的 bean 添加注解错误,例如将 Spring 的
@Service
错选成 dubbo 的; - 选择错误的自动注入方法等。
- 打包时相关的依赖包丢失了这个组件【本次排查问题原因】
问题排查思路:
1、首先确定问题产生情况:其他所有的bean都能正常加载,就这个新加的bean无法正常加载
2、通过applicationContext调用 getBeanNamesForAnnotation(org.springframework.stereotype.Service.class)
找到所有的service:发现存在这个bean类型
3、通过名称寻找getBean("XXX")发现debug时出现了异常:org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘XXX’ 这个异常由于日志级别原因没有正常打印
定位问题:
由于本次是增量打包涉及的jar有两个,一个是组件包,另一个是组合交易包【只打版了这个】。导致spring在构建bean的时候无法正常构建这个组合交易【缺失了组件包的组件】。导致交易异常,无法取到这个bean文件。
这篇关于Spring 无法找到指定的 bean 但是这个bean实际上是存在的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!