一、问题现象

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

奇葩问题:spring+mybaits项目突然出现其中一些Mapper类找不到的更多相关文章

  1. 关于Android项目中,突然就R类找不到已存在的资源文件的解决方法

    项目代码早上打开正常,下午开的时候突然提示R类找不到已存在的布局文件,于是试了各种方法,CLEAN啊,重启啊,均无效,然后去网上搜了下,遇到这个问题的人还不少. 看到其中有这么一条解决方法,删除导入的 ...

  2. spring boot项目如何测试,如何部署

    有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元 ...

  3. Eclipse创建第一个Spring Boot项目

    一.安装SpringBoot插件 安装过程需要联网下载插件,属于在线安装,请耐心等待安装完成,下载安装完成以后,需要重启Eclipse 二.创建Spring Boot项目 如下图所示new-other ...

  4. Spring整合Redis&JSON序列化&Spring/Web项目部署相关

    几种JSON框架用法和效率对比: https://blog.csdn.net/sisyphus_z/article/details/53333925 https://blog.csdn.net/wei ...

  5. 错误: 找不到或无法加载主类(IDEA中启动spring boot项目)

    版权声明:本文为博主原创文章,如果转载请给出原文链接:http://www.jufanshare.com/content/142.html 提示:需要对IDEA编辑工具使用熟悉 出现一个问题,就是sp ...

  6. 使用IDEA创建Spring boot项目,继承mybaits。并进行简单的数据库查询操作

    本文讲的是使用IEDA创建Spring boot项目,对于环境安装需要自行准备,如JDK1.8.Maven 3.3.IDEA编译器.Mysql5.7等需事前准备好. 1.创建Spring boot项目 ...

  7. spring+mybaits xml配置解析----转

    一.项目中spring+mybaits xml配置解析 一般我们会在datasource.xml中进行如下配置,但是其中每个配置项原理和用途是什么,并不是那么清楚,如果不清楚的话,在使用时候就很有可能 ...

  8. 简单的Spring Boot项目——实现连接Mysql数据库

    一.创建Spring Boot项目 参考:使用IntelliJ IDEA创建简单的Spring Boot项目 二.数据库.表的创建 三.项目开发 3.1 pom.xml文件配置 <?xml ve ...

  9. IntelliJ IDEA上创建maven Spring MVC项目

    IntelliJ IDEA上创建Maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.x ...

随机推荐

  1. Linux中Firefox——Firebug插件安装及使用

    Firebug的安装方法即打开方式同httpfox Firebug使用指南: Firebug可以随时编辑页面:在HTML标签中,点击窗口上方的"inspect"命令,然后再选择页面 ...

  2. tomcat解决乱码

    今天遇到个问题,太尴尬了: 本来做好并测试号的项目提交到svn, 组员下了之后,又部分url传递的中文参数在另一个jsp接收出现乱码(只有我的不乱码). 改了之后更尴尬的事情发生了:组员的全部不乱码, ...

  3. spring中连接池的配置

    在默认通过myeclipse生成的配置里,spring使用的是apache的dbcp连接池 <bean id="dataSource" class="org.apa ...

  4. shell date格式化输出

    1-  echo `date "+%Y-%m-%d %H:%M:%S"` 2014-11-13 15:06:26 2-  echo `date "+%y-%m-%d %H ...

  5. php pdf word excel 操作方法

    很早的时候,用php生成execl都是件麻烦的事,我一般都会用csv来替代,现在这类工具就很多了,并且比较成熟了.不光有excel的,word,pdf. 1,php excelreader操作exce ...

  6. OS-MAC: An Efficient MAC Protocol for Spectrum-Agile Wireless Networks

    IEEE TRANSACTIONS ON MOBILE COMPUTING, VOL. 7, NO. 8, AUGUST 2008 正如之前所说的,这是一个out-of-band local cove ...

  7. C 宏定义

    C/C++中宏使用总结 .C/C++中宏总结C程序的源代码中可包括各种编译指令,这些指令称为预处理命令.虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境.本节将介绍如何应用预处理程序和注释 ...

  8. C#中给线程传值并启动

    方法1: ParameterizedThreadStart 委托+Thread.Start 方法 (Object)         private void btnLogin_Click(object ...

  9. cf475B Strongly Connected City

    B. Strongly Connected City time limit per test 2 seconds memory limit per test 256 megabytes input s ...

  10. 剑指offer-面试题17.合并两个排序的链表

    题目:输入两个递增的排序的链表,合并这两个链表并使新链表中的节点仍然是 按照递增排序的.例如链表1链表2合并为链表3. List1:->->-> List2:->->-& ...