框架迁移:由SSM至SpringBoot过程详解

  • Post author:
  • Post category:其他




IDEA 框架迁移:由SSM至SpringBoot过程详解


提示:本篇文章整理出框架迁移的大致流程,此外还记录了在实际中遇到一些的问题及解决措施,时间有限不能详尽,如有纰漏还请大佬指出,谢谢!




一、SpringBoot理论知识与基本框架搭建


本人在项目中是使用的是1.5.8.RELEASE版本。

  1. 理论知识的话最好还是得有,记得以前是看的B站某尚xx机构的,之后准备新开一个SpringBoot2.X的学习专题;
  2. 框架搭建的话,就不赘述了(其实很简单的),我在这里贴一篇其他博主的:https://blog.csdn.net/sunnyzyq/article/details/108666480
  3. 框架搭建好后,可以自己写一个controller来测试一下:

在这里插入图片描述
在这里插入图片描述


  1. 注意

    :在完成框架搭建后,可能在启动类运行时会出现:

异常:Cannot determine embedded database driver class for database type NONE…(应该是这个)


原因:SpringBoot 刚启动时就会自动地注入数据源(开始没有)和配置 jpa等等。


解决:在启动类中加入以下代码即可:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})

在这里插入图片描述




二、正式开始迁移框架


接下来基本就是框架迁移的顺序了(每次先迁移一个成功了再去迁移其他的)以及回忆一些我遇到的坑。



1. SSM框架下pom.xml的迁移

1.1 在原SSM框架中的pom.xml中,将和spring相关的依赖先去除(springboot已经有了);

1.2 接下来就可以将其他依赖粘贴到SpringBoot的pom.xml中去了(当然可能出现其他“意外”)其实几句和spring-boot-相关的配置就已经涵盖了很多jar包依赖。



2. DAO的迁移

这里由于我之前在SSM的版本中添加了一些

其他特殊配置

,在迁移的时候出现了很多bug(折腾了很久),感觉是因为SpringBoot封装的太多太多东西了,所以我建议大家如果有特殊的需求建议先删除,让

项目“单纯一些”

,等迁移结束再添加。

2.1 将之前的数据库相关配置如数据库驱动、连接等写入application.properties,还有mybatis相关的、日志相关的都直接迁移到对应的位置即可;

2.2 因为SpringBoot就是为了去掉.xml,将配置代码化,其本质都是将其写入往SpringIOC容器当中,按照SpringMVC里面的配置一一对应创建bean,这里写几个这里常用的注解:

@Configuration
@MapperScan("")			//扫描包路径
@Bean(name = "") 		//相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理;
@EnableAutoConfiguration//让SpringBoot根据应用声明的依赖来对Spring框架进行自动配置,加在主类上;
@AutoWired
@Value("")
.......

2.3 如果之前有硬编码的地方应该都放到application.properties里面;

2.4 接下来就直接把其他资源迁移过去,之后进行单元测试,确保DAO的迁移没有问题;

2.5

注意

:静态是不能以加@Value这种方式加载application.properties中的配置的,要为静态变量设置上setter并去掉static;

2.6

注意

:在在配置url时,可以在后面加上

&useSSL=false

这个防止数据库报错,因为MySQL在高版本需要指明是否进行SSL连接。

2.7

注意

:还遇到过数据库报错误提示:… incompatible with sql_mode=only_full_group_by的问题时候,最简单的一种解决办法是在MySQL的console中执行以下语句即可:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));



3. Service的迁移

3.1 首先也是在原SSM框架中的pom.xml中,将与之相关的先去除,如之前需要扫描使用注解类型的配置(启动类是自动全包扫描的);

3.2 使用事务管理时:

在这里插入图片描述

3.3 接下来如果使用了Redis的话可以先把Redis的配置写入配置文件,同样按照SSM框架中的.xml文件去写对应代码;

3.4 之后先测试一个功能成功之后就可以转移整个Service了以及一些不写入数据库的东西。




4. WEB层的迁移

4.1 和前面几乎一样,定义静态资源配置、视图解析器、请求处理器、创建相关bean等,写完配置类之后就可以迁移web相关资源了,然后做前后端联调;

4.2

注意

:RequestMapping(value=”/xx”),其中是value不是name;

4.3

注意

:加载资源的路径

在这里插入图片描述

4.4

注意

:遇到某些不正常显示的,可以考虑降低一下jackson的版本;

在这里插入图片描述

4.5 控制台输出连接池的警告信息时(虽然不影响),可以修改连接池初始线程数;

在这里插入图片描述

4.6

注意

:遇到Could not autowire. No beans of ‘xxxx’ type found的错误提示时,虽然不影响运行但还改一下Autowire的检测级别吧;

在这里插入图片描述

4.7

注意

:有时候遇到资源加载不出来的时候,考虑清除浏览器缓存试试,或者检查一下本地或者服务器上的资源加载路径;

4.8 最后就可以慢慢迁移其他的如拦截器等,至此基本完成了框架迁移的大致流程。




三、总结


以上只是本人总结的迁移框架大致流程(虽然很简单但也记录一下吧),涉及到很多具体细节还有坑,由于时间原因不能详尽。如有错误或不妥之处还请大佬们不吝赐教!



版权声明:本文为NothingYCX原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。