从永远到永远-SSM项目升级踩坑

1.背景

上古SSM项目,因安全漏洞需要升级框架,现记录下遇到的几个问题

2.升级

1.SpringMVC升级完之后接口404

依赖升级前版本升级后版本
spring相关(core、bean、tx、aop等)4.1.6.RELEASE5.3.27
spring-web4.1.6.RELEASE5.3.27
spring-webmvc4.1.6.RELEASE5.3.27

Spring、SpringMVC等相关版本从4.1.6.RELEASE升到了5.3.27。升级完之后,原来能够访问的接口,报错404。
经debug多次测试,发现后缀的问题。分析源码,发现useSuffixPatternMatch默认设置为false,即后缀匹配模式默认不启用。注释中显示,5.2.4之后,貌似直接废弃了此设置。

在这里插入图片描述
手动设置开启即可,在spring-mvc.xml中,添加或修改以下代码,开启后缀匹配模式

<mvc:annotation-driven>
    <mvc:path-matching suffix-pattern="true"/>
</mvc:annotation-driven>

参考1
GitHub相关issue

2.mybatis、mybatis-spring

依赖升级前版本升级后版本
mybatis3.3.03.5.6
mybatis-spring1.2.32.0.5
升级mybatis依赖版本之后,报错:
java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;

原因是,mybatis-spring版本与mybatis版本不匹配,详细内容参考官网
在这里插入图片描述
升级了spring,也对应升级了mybatis,而mybatis-spring版本还是1.3.4,显然不符合条件。

3.注意

mybatis、mybatis-spring版本问题,很早就发现了。按照匹配版本修改,测试一直不通过。好一顿折腾,发现项目中依赖已经成功换了,但是运行的war包中的依赖还是旧版本。如果,大家有类似的问题,注意清理一下/target下的旧包(真的坑)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将SSM框架中的MyBatis升级到MyBatis-Plus是可行的,可以实现共存。SSM框架由Spring、Spring MVC和MyBatis组成,而MyBatis-Plus是对MyBatis的增强扩展。下面将介绍如何将它们共存。 首先,需要将MyBatis升级到MyBatis-Plus。可以将MyBatis-Plus的依赖项添加到项目的pom.xml文件中,替换原有的MyBatis依赖。然后,需要对原有的MyBatis配置文件进行修改。MyBatis-Plus提供了一些方便的功能和特性,如自动填充、逻辑删除等,可以根据项目需求选择开启或关闭。 在SSM框架中,MyBatis-Plus可以与原有的Spring框架和Spring MVC框架完美共存。Spring框架负责管理和配置各种Bean,MyBatis-Plus可以与Spring框架一起使用,将其作为DAO层的组件进行管理。在Spring的配置文件中,可以将MyBatis-Plus的配置文件加入到配置中。 在Spring MVC框架中,可以继续使用原有的控制器、服务和视图解析器等组件。MyBatis-Plus可以与Spring MVC框架无缝集成,通过Spring MVC接收请求,然后调用MyBatis-Plus进行数据访问和处理。 在具体开发过程中,可以利用MyBatis-Plus提供的一些特性简化开发工作。例如,可以使用MyBatis-Plus的代码生成器来自动生成DAO、实体类和Mapper等代码,减少手动编写的工作量。 总结来说,将SSM框架中的MyBatis升级到MyBatis-Plus是完全可以实现的,它们可以共存并完美集成。通过使用MyBatis-Plus,我们可以更加便捷地开发和管理数据库操作,提高开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值