zoukankan      html  css  js  c++  java
  • 奇葩问题:spring+mybaits项目突然出现其中一些Mapper类找不到

    一、问题现象

         1,No bean named 'bomManageMapper' found in org.springframework.beans.factory.support.DefaultListableBeanFactory@.........

         2,我把代码中引用的bomManageMapper全部注释掉,又会出现另外一个Mapper对象找不到

         3,但是奇怪的是,有两个项目启动的时用到的Mapper对象可以找到,发现这两个Mapper对象是在项目的core包下面,而其他找不到的Mapper对象都在interfaces包下面;

    二、寻找答案

         1,怀疑是昨天修改了什么东西,导致的这个问题(具体也记得不清楚了,所以版本控制真的很重要,而且做好是每天都要提交);

         2,试图还原昨天的修改,删除一些新增内容,但是问题依旧;

         就这样折腾了一上午;

    三、解决

      打开了spring的配置文件看看,有这一行,扫描Mapper和dao类:   

        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"    p:basePackage="com.skysport.*.dao" p:sqlSessionFactoryBeanName="sqlSessionFactory" />

       就是这个dao,突然想到,昨天把interfaces的包中的‘dao’文件夹重命名为‘mapper’,而core包中的还是dao包,好吧,问题原因找到了。

       重命名core包中的dao包为mapper包,重启服务,恢复正常;

    四、一点思考:

         1,关于定位问题:

                 如果之前没有出现,而是做了某些修改后,才出现的问题,那么肯定是修改动作导致的。

         2,关于版本控制:

                 养成按天提交代码的习惯,这样可以对比出来每天修改的内容,便于定位问题;

         3,关于修改:

                在修改一项内容时,一定要评估它带来的影响有多大,我觉得可以从两个角度去衡量:

                a),可量化的:修改一项内容,如果直接影响到很多文件修改,那么一定要慎重,要评估风险(例如:是否每个涉及到的地方都修改了)

                b),不可量化:例如修改了代码的加锁机制,可能影响的就一、两个类,那么就要靠开发者的自身能力和足够的测试去规避风险了。

  • 相关阅读:
    连通块问题
    线性数据结构
    NOIP2018总结
    原码反码补码详解
    一些常用的算法技巧总结
    骗分导论
    模板
    模板
    AcWing
    AcWing
  • 原文地址:https://www.cnblogs.com/firebata/p/4651104.html
Copyright © 2011-2022 走看看