<返回更多

Springboot 使用 Mybatis 启动失败排查定位

2022-10-30    阿轩谈生活
加入收藏

收获

当遇到项目启动失败,却没有错误日志打印出来的时候,试试在run方法上加个try-catch,即可捕获到异常

MyBatis的别名扫描路径不要指定的太宽泛,有可能会出现Bean名冲突,导致初始化失败

联想到之前碰到的问题,例如:

第一个想到的应该是加一层try-catch,自己把异常捕获出来。如果能看到异常,就离解决问题不远了

(补充闪电侠名言:如果能问题能复现,基本上就快解决了)

问题复现

引入依赖

创建MApper类、mapper.xml、在启动类上加@MapperScan注解

application.yml配置

问题

编译通过,但这时项目启动出现了问题。启动日志中没有任何Error错误,每次启动到一半就显示Tomcat自动stop。甚至在@PostConstruct方法里打断点都进不来。具体情况如图:由日志可见,每次执行到:

2021-08-2516:33:47.110INFO95322---[ost-startStop-1]o.a.c.c.C.[Tomcat].[localhost].[/]:InitializingSpringembeddedWebApplicationContext

这条日志之后,tomcat就会自动停止:

2021-08-2516:33:47.356INFO95322---[main]o.Apache.catalina.core.StandardService:Stoppingservice[Tomcat]

为此绞尽脑汁,google了大量帖子,有的帖子说是数据库没连上,有的帖子说是spring-logging的依赖冲突,等等,试了很多办法,都没有解决。

卡在这个问题上卡了一个多小时,突然看到一个帖子:

”在启动方法上套个try-catch就知道是什么异常了“

恍然大悟,在run方法上套了个try-catch,终于抓出来了异常:

原来是,在application.yml里我指定mybatis的别名扫描路径下,有Bean名字冲突

缩小了指定的别名扫描路径之后,问题解决!

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>