一个mybatis错误导致无法启动项目的问题

今天遇到Mybatis一个问题,导致项目一直起不来,查了很久发现是MapperXML的错,问题表现为:

系统始终起不来,但也不报错,始终卡到如下信息位置:

信息: Initializing Spring root WebApplicationContext

这种情况基本是由于Mapper写的有问题,虽然IDE可能没查出来,比如大小写错误之类

一种解决方法为:

新建一个类,继承 org.mybatis.spring.SqlSessionFactoryBean 类,重载 buildSqlSessionFactory 方法,捕获 NestedIOException 异常,并打印异常,如下:

1 try {  
2     return super.buildSqlSessionFactory();  
3 } catch (NestedIOException e) {  
4     e.printStackTrace(); // XML 有错误时打印异常。  
5     throw new NestedIOException("Failed to parse mapping resource: '" + mapperLocation + "'", e);  
6 } finally {  
7     ErrorContext.instance().reset();  
8 }  

然后修改 spring 配置文件 org.mybatis.spring.SqlSessionFactoryBean 替换为刚才新建的类。

这样,当MyBatis解析Mapper遇到错误的时候就能输出到控制台了。

原文地址:https://www.cnblogs.com/huashu/p/7840135.html