最近在做的一个项目因为需要用到JDK1.8的一些组件所以需要对旧项目升级并转化为springboot的web项目分为以下几个步骤
1. maven依赖升级
对于大部分业务代码service和dao层spring是可以做到无缝兼容的,直接升级对面的依赖版本的就可以了
2. xml文件中bean的问题
在spring boot出现之前java web开发一般都是在webapp/WEB-INF下配置一个xml文件在里面定义各种bean和bean的依赖关系,如数据库连接配置信息,数据库连接池bean,mybatis的SqlSessionFactory等bean的依赖关系.
如何轻松复用xml文件中定义的bean呢?很简单
(1)xml文件放在resource目录下
(2)在springboot启动的类上添加注解@ImportResource({“classpath:XMLBeans.xml”"}),就可以轻松将xml中的bean托管到spring中
(3)检查各个配置项是否正确,项目能正常启动运行,如果成功启动,试试你的接口应该就能正常调用了,恭喜
但是还是一个问题没有解决,而且很难发现,只会在运行时期暴露出来,对于部分mybatis查询会报
Parameter '×××' not found. Available parameters are [0, 1, param1, param2]
这个异常信息
3. mybatis高版本的兼容性问题
对于低版本的mybatis中极有可能存在通过#{0} #{1}的方式取参数,在spring boot支持的mybatis版本中
是不推荐,也不支持这种写法的,所以就给我们的迁移工作带来了巨大的困难,笔者经过分析源码得到关键点在(3.4.6t版本)的类org.apache.ibatis.reflection.ParamNameResolver#ParamNameResolver
的第74行关键代