前辈写的系统功能很强大,但是前辈写的代码让人很头疼。因为疫情原因项目上的事不多,所以有时间对项目进行重构。重构步骤如下,每完成一个阶段就进行测试保证项目能正常运行。

  • (一)删除不用代码(1-2天)
  • (二)分层梳理
  • (三)事务控制和逻辑优化

(一)删除不用代码(1-2天)

  1. idea设置自动导包
  2. 阿里编码规约扫描插件扫描解决子类未添加@override的问题(方便定位不用的方法)
  3. 删除不用的方法和属性(spring注解注入的属性不要setter,getter方法),修改方法合适的访问修饰符

技巧:idea展开/收起所有方法快捷键Ctrl + shitf + +/-,让无用方法无处遁形

(二)分层梳理

我们采用阿里巴巴开发手册的分层推荐(表红框未采用)

这个阶段只修改通用的manager层,dao层先不修改,修改规范如下

  • 方法命名规范(至于用insert,add,create仁者见仁智者见智,统一规范就可以)

    • addXxx
    • addBatchXxx
    • updateXxx
    • updateBatchXxx
    • deleteXxx
    • deleteBatchXxx
    • getXxx
    • getPageXxx
    • 驼峰命名
    • 注释

阿里巴巴Java开发手册推荐如下,也未采用。

  • manager接口解耦:接口中不能使用第三方对象,全部使用jdk对象
  • 事务控制:manager,dao层接口只能给对应的service调用,由service统一做事务控制,本阶段只修改manager层,暂不修改dao层调用方式

(三)事务控制和逻辑优化

  1. 模块梳理:每个人负责几个模块,梳理内容如下
  • web、接口每个方法整体作用,有条件的可以追踪下调用者,调用者是否存在或者需求变化。
  • 每个方法调用了哪些业务,比如一对多多对一的级联关系,多对多关系,一对一关系,这些关系在增删改查时候需要做什么操作;数据持久化,比如说数据库,缓存,推送给第三方等
  • 低质量不规范代码记录
  1. 重构
    web/接口里面的一个方法只能调用一个service方法牵涉到多个业务的在一个service方法中实现保证每一个service方法都是完整的功能和事务

记一次spring MVC项目后台重构(持续更新)相关推荐

  1. Mr.张小白(案例:基于Spring MVC实现后台登陆系统验证)

    基于Spring MVC实现后台登陆系统验证 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8&qu ...

  2. spring mvc项目中利用freemarker生成自定义标签

    2019独角兽企业重金招聘Python工程师标准>>> spring mvc项目中利用freemarker生成自定义标签 博客分类: java spring mvc +freemar ...

  3. 用maven创建Spring MVC项目

    用maven创建Spring MVC项目 mvn archetype:generate -DgroupId=fry-arthur -DartifactId=spring-mvc-study -Darc ...

  4. 第一个使用Spring Tool Suite(STS)和Maven建立的Spring mvc 项目

    一.目标 在这篇文章中.我将要向您展示怎样使用Spring Frameworks 和 Maven build创建您的第一个J2ee 应用程序. 二.信息 Maven是一个java项目的构建工具(或者自 ...

  5. 如何在Spring和Spring MVC项目中进行测试

    Spring框架概述 Spring大约包含了20个模块,这些模块组成了核心容器(Core Container).数据访问/集成(Data Access/Integration).Web.AOP(面向切 ...

  6. spring mvc学习(4):第一个spring mvc项目

    一个Spring MVC的项目如何创建?请看这里. 代码编辑器:Intellij IDEA 请提前在电脑上配置好自己的tomcat! 该文属于小白教程,适合初学者. 1 创建Spring MVC项目 ...

  7. 【视频】利用IDEA 创建 spring mvc项目

    为什么80%的码农都做不了架构师?>>>    IntelliJ IDEA 专业交流群 185441009 视频下载地址:http://pan.baidu.com/s/1ntrBoV ...

  8. spring mvc项目在IDEA下使用jrebel热部署报错!!

    转载:https://segmentfault.com/q/1010000006068898 spring mvc项目在IDEA下使用jrebel热部署报错!! 25-Jul-2016 20:43:4 ...

  9. 用Intellij IDEA 创建第一个Spring MVC项目

    0 前言 一个Spring MVC的项目如何创建?请看这里. 代码编辑器:Intellij IDEA 请提前在电脑上配置好自己的tomcat! 该文属于小白教程,适合初学者. 1 创建Spring M ...

  10. Spring MVC 项目 JSP 页面显示源码

    问题描述:Spring MVC 项目的 JSP 页面跳转显示源码,而非页面 原因:Spring MVC 项目的前端拦截器 拦截了 JSP 页面 改正:去掉 * 插曲:如果仅仅改动 JSP 头文件为 H ...

最新文章

  1. jmeter 测试 api 接口方法
  2. Spring Autowire自动装配
  3. GDI+ 获取本地电脑的图片编码器
  4. SPIFFS文件系统移植–基于STM32F407
  5. SD_CUSTOMER_MAINTAIN_ALL
  6. 阿里SopHix热修复框架
  7. MySQL覆盖索引:直接从索引查询到了数据
  8. MySQL 中 AUTO_INCREMENT 的“坑” --重复值问题
  9. 这个是帮朋友发的,。。。我也觉得挺无聊的。
  10. Eureka-zookeeper的服务发现替代方案
  11. windows安装mysql-8.0.12-winx64和Navicat客户端连接(亲测有效)
  12. 4000元性价比主机
  13. 微信小程序scroll-view横向滚动
  14. linux pstree(process status tree) 命令详解
  15. excel查找空值快捷键_有了这7个Excel中常用的小技巧,再也不用担心自己要加班了!...
  16. php运行日志在哪里看,thinkphp错误日志在哪
  17. JavaScript在线代码编辑器-技术选型
  18. 已解决:ORA-00932:数据类型不一致:应为-,但却获得CLOB
  19. SQL安全-关闭外网对1433的访问
  20. Cisco路由器的配置

热门文章

  1. 对博客园文章审核规则的质疑
  2. bzoj 2694: Lcm
  3. 判断进程是否正在运行
  4. windows Hadoop环境搭建之一---软件准备
  5. 判断Windows服务是否启动
  6. Ansible详解(十八)——Ansible使用小技巧
  7. Linux下Tomcat性能优化--文件句柄数增大
  8. Java语言中:switch语句经典习题
  9. linux磁盘空间用满的处理方法
  10. Head First C 学习日志 第十章 进程间通信 输入输出重定向