来自某高校的外包??

Shi Yi2025/07/11dailyjavaspringboot

📌 简单介绍一下

这是一个关于原项目升级的项目,来自于某某 985 高校的内部系统,内容保密

WARNING

原项目的技术栈是 Struts2+Spring+Hibernate。我们需要将这个项目升级为 SpringBoot+MyBatis+Vue+Vite。对,是的,没错,我们需要把这个 前后端不分离的项目 升级为 前后端分离 的项目。


🎯 升级计划

  1. 升级 SpringBoot 版本为 2.2.7
  2. 更换为比较新的 MyBatis 和 Mybatis-Plus
  3. 最新的 Vue 和 Vite

🤬 吐槽一下

源代码到手的时候大概看了一些,说说一些槽点:

  • 最多的 Controller 行数高达 4000+,这是因为大部分业务都在 Controller 进行实现了
  • 还有超长的 if else 组合技
  • DaoImpl 里面有一堆 sql 字符串拼接
  • 渲染的数据也是直接返回了逻辑删除字段,没有一点点脱敏
  • 渲染的界面也经常卡住,最长的查询可以到 45 秒左右
  • 很多配置项也不进行统一

TIP

反正吐槽的点挺多的,感觉像 外包综合体


💡 升级思路

尽量不修改任何源代码逻辑 的情况下,完成后端框架的整体替换。在前端方面下,基于 最新的 Vue 和 Vite 重新开发。


🛠️ 升级步骤

  1. 在 github 上找了一个 Springboot 2.2.7 的简易脚手架,修改配置文件,运行
  2. 将原项目除了 xml 文件和 controller 的文件都复制过来
  3. 之前是 xml 注册 bean 的,现在用注解重新注册 bean
  4. 修改 DaoImpl 层和 Mapper 层,myabtisX 生成新的映射文件
  5. 复杂的 sql 采用 xml 编写 sql 语句,简单 sql 采用 MybatisPlus 编写
  6. 补全缺少的依赖,之前是手动引入 jar 包,现在是 maven 管理依赖,保证项目能够正常启动
  7. 引入原项目的登录 controller 层,并且改为 Restful 风格,统一响应体封装类返回
  8. 重构 Shiro 安全框架,之前 Shiro 的配置是 xml 写的,现在改为配置类的形式;而且之前不符合前后端设计,这里需要大部分重构,采用 token+session 双认证
  9. 引入原项目其他的 controller 层,原来大部分都是 modelmap 和 @ModelAttribute,之后都是改为 Restful 风格,统一响应体封装类返回
  10. 在尽量不修改源代码逻辑的情况下,细调逻辑,对所有逻辑的 HttpServletRequest 传参改为 @RequestBody,对取参采用 HttpServletRequest 的 getAttribute() 方法取值,采用自定义的 Bean 拷贝协调新实体类和旧实体类的转化,协调可能出错的逻辑和 sql 语句
  11. 引入 knife4j,实现接口文档,测试和对接,修复错误。>>目前的进度在这里<<
  12. 优化

📝 总结

TIP

虽然可能大家看上去步骤很清晰,没有什么难度,大部分都是 CV,但是对于我这种水平的人还是挺折磨的。虽然有些重复性工作让 AI 改了,但是 AI 会偷懒,然后我还要去改 AI 的错误,明明强调不允许修改原代码逻辑,但是它还是会去修改。

大家使用 AI 的时候,它改的代码最好还是一步步检查。

Last Updated 7/19/2026, 1:57:02 PM