zoukankan      html  css  js  c++  java
  • Spring里遇到的一个问题,autowired时报找不到bean定义

       有个工程师,在项目工程里加了些页面和Service,Dao之类,然后启动web工程,Spring一直报错说找不到autowired定义的service接口的实现bean的定义,然后来求助我来帮忙解决。

       我理所当然的按照常规步骤1,2,3...检查他的代码是否存在问题:

    • 第一步,检查service接口是否确实有实现类并且@Service标注了,这个是初学者让出现问题,检查结果确实没问题Pass。

    • 第二布,因为其service定义在新的package里,遂检查其spring配置里,component-scan是否新增加了扫描package,检查结果确实没问题Pass。

    • 第三步,怀疑Eclipse开发环境里,运行tomcat的时候,没有publish成功,确认workspace里是自动build,并且clean & Rebuild,在clean tomcat server,问题依旧。

    • 第四步,还是怀疑Eclipse开发环境里,运行tomcat的时候,没有publish成功,遂检查workspace的的.metadata/.plugins/org.eclipse.wst.server.core里所发布的内容,检查结果确实class已经publish过去没问题,Pass。

    • 第五步,检查Web工程里的Deployment Assembly,配置正确没问题,Pass。

       逐步检查下来,常规的错误貌似都没有犯,但怎么clean,再启动依然报错,找到Service接口,Ctrl+T,确实找到实现类,并且@Service标注。问题查到这里就有点奇怪了,这样问题以前貌似没碰到过。

        有问题不能不解决,继续琢磨,Ctrl+G找Service所有引用,发现有两个地方被使用@Autowared注入,然后,然后,然后,点其中一个引用的地方,Ctrl+T找其实现类,很神奇的发现,光标就跳到引用这个service的类本身上。OMG,Finally,原来该Service的实现Bean在引用自身Service,结果循环引用导致无法实例化Bean而报出这个错误。对于一个中高级工程师来说,犯这个错误,我只能一顿痛扁,挣一顿免费晚餐,你,是否也曾经犯过这个傻呢......Spring里遇到的一个傻问题,autowired时报找不到bean定

  • 相关阅读:
    贝塞尔曲线介绍及一阶、二阶推导
    Blender Principled BSDF shader 使用教程
    Blender2.8基础(一)快捷键与基础操作
    blender 2.81 设置为 右键拖动的时候。 右键菜单消失。 此时w键 唤出右键菜单。
    渲染属性 景深 最大尺寸 blender
    光圈,焦距,物距 与景深关系
    焦距与景深关系简单明了图解版以及一个疑问
    Cocos2d-x 创建精灵的五种方法
    【开发者指南】第三章:精灵——学习笔记
    C++标准库和标准模板库
  • 原文地址:https://www.cnblogs.com/btbear/p/3824960.html
Copyright © 2011-2022 走看看