记录一次传统SSH项目升级springboot2经历

本文记录了一个传统的SSH项目升级到SpringBoot2的过程。改造涉及将项目改为maven管理,替换Struts2为SpringMVC,处理请求响应参数,再到最终升级SpringBoot,配置sessionFactory、文件上传、WebSocket和登录改造。整个过程耗时两周,作者通过逐步替换和优化,实现了项目的平稳过渡,并反思了自己的技术成长和职业态度。
摘要由CSDN通过智能技术生成
  1. 先交代一下改造前项目背景:
    1. 原始项目只迭代了2个大的版本,所以代码量也不算很大,但是旧项目连maven都不是,而且经过好多人手,管理混乱。
    2. 用的spring4.2+hibernate4+struts2,后来整合进的redis也是用jedis写的工具类,连配置都是直接写在java文件里面。
    3. 项目用了一些struts2拦截器,还有spring的AOP以及AspectJ和原生filter和servlet,总之项目的整体控制这块比较乱。
    4. 登录、权限都没有使用框架,使用的比较原始的方法。
    5. 项目前后端分离,所有接口都只返回JSON,只有几个接口有转发和重定向。
  2. 改造已经过去一个多月,通过测试验收之后马上在新框架上又迭代了新版本,所以不是实时记录没有截图,主要记录过程。
  3. 改造过程:
    1. 将项目改造成由maven管理的SSH项目,保证改造完项目能跑起来不报错。
    2. 加入springMVC的依赖,和springMVC配置文件(之后换SpringBoot其实还是会删除,但是先保证Struts2顺利被SpringMVC替换,戒骄戒躁毕竟我还是个菜鸟,慢慢来。),搞完先让项目跑起来。(其实Struts2和springMVC并不会冲突,所以一些很旧的陈年老项目也经常能看见各种框架混用。)
    3. 整理Struts2的拦截器全部用springMVC重写,BaseAction改写为BaseController。
    4. 将类上@NameSpace全部替换为@Controller \n @RequestMapping;将方法上的@Action全部替换为@RequestMapping;所有action包名替换为controller;类的后缀Action全部替换为Controller。(这一步工程量比较大,幸好idea比较智能,修改类名能同时修改文件名和引用,然后项目里面还有很多action没有Namespace,得加@Controller,还有没有继承BaseAction的类添加继承,重构的时候就能发现咱项目管理的多么混乱(┬_┬),发现好多问题,类名小写之类的低级错误一大堆,没有强大的内心,接手改造这样的项目大概只想跑路)。
    5. 改造request和response还有Struts2 属性注入的传参方式springMVC用不了。(这一步也是大坑,没啥技术含量就是繁琐。request可以自动注入直接抽取到BaseController,response是绑定在方法的入参的,其实也可以写拦截器、AOP统一处理参数。因为我们项目接口千奇百怪的写法,所以我选择了最笨的办法一个一个类的改,再者,我还能改前端,实在别扭的就连前端的传参方式一起改了。耐心渐渐消失的时候就懒得给别人改bug了,不然真的做不完了,遗留问题不处理,以后还是坑……但是……🙊一把辛酸泪)
    6. 项目能正常
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值