奇葩问题:spring+mybaits项目突然出现其中一些Mapper类找不到
2015-07-16 13:50
501 查看
一、问题现象
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类:
就是这个dao,突然想到,昨天把interfaces的包中的‘dao’文件夹重命名为‘mapper’,而core包中的还是dao包,好吧,问题原因找到了。
重命名core包中的dao包为mapper包,重启服务,恢复正常;
四、一点思考:
1,关于定位问题:
如果之前没有出现,而是做了某些修改后,才出现的问题,那么肯定是修改动作导致的。
2,关于版本控制:
养成按天提交代码的习惯,这样可以对比出来每天修改的内容,便于定位问题;
3,关于修改:
在修改一项内容时,一定要评估它带来的影响有多大,我觉得可以从两个角度去衡量:
a),可量化的:修改一项内容,如果直接影响到很多文件修改,那么一定要慎重,要评估风险(例如:是否每个涉及到的地方都修改了)
b),不可量化:例如修改了代码的加锁机制,可能影响的就一、两个类,那么就要靠开发者的自身能力和足够的测试去规避风险了。
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),不可量化:例如修改了代码的加锁机制,可能影响的就一、两个类,那么就要靠开发者的自身能力和足够的测试去规避风险了。
相关文章推荐
- swift2 集合类型
- 移动端高清、多屏适配方案
- Swift面向对象基础(中)——Swift中的存储属性和计算属性
- Android编程规范与常用技巧
- Android学习之调用有道词典查词
- [iOS]生成并使用静态库(.a)文件
- 收集-Android快速开发框架、第三方库
- 【Android学习】Merge 优化布局
- cocos2d-x游戏实例(16)-纵版射击游戏(3)
- iOS GCD实现发送验证码倒计时
- android---android:layout_weight属性
- ios学习笔记连载一
- Android中实现的一个底部弹出窗口,可根据需要扩充
- Android端Json封装成类
- cocos2d-x游戏实例(15)-纵版射击游戏(2)
- cocos2d-x游戏实例(14)-纵版射击游戏(1)
- 在android手机上通过Html5Plus调用java类。
- cocos2d-x游戏实例(13)-简易摇杆控制主角
- cocos2d-x游戏实例(12)-实时拖动主角移动
- 把Android 项目移到另一个主机出现的错误