一、前言🔥
环境:spring3.0 + mybatis 3.3
二、事故发生缘由🔥
事情的经过很奇妙,我之前不是在带着技术组赶项目嘛,然后不知道老大在哪里接手了一个老旧项目,说当时开发结束了一直扔着就没有下文,现在要求我把这个项目给成功运行,且部署到服务器。我看到这条消息,我心想,几年前的项目,要还是使用的是不分离且页面使用jsp写的我就真奔溃了。
老大接着发给了我项目,我打开一看目录结构,我深深陷入了沉思。果然被我猜对了,还真是spring + mybatis + jsp。传统的ssm框架写的。
我先是将sql源文件导入进数据库,还好,mysql用的是5.6版本下的,顺利执行成功。看到这不规范的表结构设计,我有点堪忧!这还是能项目吗?写的这么这么不规范。
我看了下pom依赖配置,导入的是真的多,项目依赖陆续下载完成后,我就启动application 类。不用想,必报错。
那只能怎么办?耽误点时间看看报啥错呗,然后解决,总要先把项目运行不报错先,至于要迭代还是咋就不关我的事了。
三、排错分析🔥
控制台关键是爆了这么一段错:
java.lang.NoClassDefFoundError: org/apache/ibatis/annotations/Mapper...
看到这段错,我回忆回忆,好像还真没有遇到过,那我得瞅瞅,代码中是否有报错的地方,没有,那我只能科学上网,查看下是否有相关解决方案,试了前三个解决方案,说是将@Mapper注解改成@MapperScan,就能解决,没有用。
最后,原来问题出在这里。这项目中用的spring 3.0 + spring-mybatis-1.3.0 + mybtis 3.3。好家伙,用的还是这种组合版本,版本之间冲突而已。
所以解决办法就是找一组兼容版本替换当前两jar依赖版本即可
控制台错误:打印截图:
四、解决方案🔥
更新使用的mybatis的版本为3.4.0版本以上即可!如下:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
<scope>compile</scope>
</dependency>
升级 mybatis版本后,我们再来重启项目,ok!大功告成。项目是成功运行起来了,但是不敢保证里头的业务逻辑是否不会报错,这我也不知道,要是遇到逻辑报错,那更是头秃,我给老大回报完,我成功运行,也能正常登陆系统,结果来一句,带几个伙伴,把这个项目熟悉一下,熟悉一下?不是吧!我是真心不想看啊,写成这样。给你们举个例子啊,Controller是逻辑从头写到尾,基本不封装接口层与实现层,一个Controller接口几百行代码。艾玛
家人们,如果是你们被安排,你们会接手并进行代码熟悉吗?
... ...
好啦,以上就是解决该报错的所有内容啦。如果对你有所帮助,还请不要忘记给bug菌[三连支持]哟。如果想获得更多的学习资源或者想和更多的技术爱好者一起交流,可以关注我的公众号『猿圈奇妙屋』,后台回复关键词领取学习资料、大厂面经、面试模板等海量资源,就等你来拿。
五、文末🔥
如果你还想要学习更多,小伙伴们大可关注bug菌专门为你们创建的专栏《bug调优》,都是我一手打下的江山,持续更新中,希望能帮助到更多小伙伴们。
我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!
最后送大家两句我很喜欢的话,与诸君共勉!
☘️做你想做的人,没有时间限制,只要愿意,什么时候都可以start。
🍀你能从现在开始改变,也可以一成不变,这件事,没有规矩可言,你可以活出最精彩的自己。
💌如果文章对您有所帮助,就请留下您的赞吧!(#^.^#);
💝如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;
💗如果对文章有任何疑问,还请文末留言或者加群吧【QQ交流群:708072830】;
💞鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);
💕版权声明:原创不易,转载请附上原文出处链接和本文声明,版权所有,盗版必究!!!谢谢。