设计初衷

1.抽象单表的增删查改功能。
2.设计一套适用于大部分项目的开发规范。
3.提供一套通用的日志处理和异常处理方式。
4.通用功能强大并保持可扩展,与业务无关。

设计原则

1.代码简单易懂(只抽象单表的分页查询,列表查询,删除,新增,编辑,详情功能)
2.接口高度可扩展(大部分后台项目可以基于此进行二次开发)
3.规范开发(提供一套适用于大部分后台项目的规范)

demo走马观花

1.业务Controller类继承AbstractController(AbstractController有通用实现方法)

2.业务Service接口继承ACommonService(定义了数据转换接口和基本的default方法)

3.业务ServiceImpl类实现业务Service接口(实现数据的转换接口)

4.业务Mapper继承BaseMapper(mybatis plus提供了接口支持)

开发类的相关介绍

1.controller入口
1)AbstractController抽象类实现了增删改查接口。
2)SpOfferVO是返回给前端的实体类。
3)SpOfferDTO前端传进的参数实体,用于编辑和新增功能。
4)SpOfferQuery列表查询时传进的查询条件。
5)commonService是AbstractController属性。

2.AbstractController
1)抽象类实现删除,编辑,新增,分页查询,详情功能。

3.service入口
1)SpOfferServiceImpl实例类专注于各层实体类的转换。
2)BeanUtil工具类简化Entity,DTO,VO之间的相互转化。
3)SpOfferServiceImpl中增删改查方法的具体功能都会转发到一个顶层接口去实现。
4)SpOfferService接口会继承顶层接口

4.顶层接口ACommonService
1)SpOfferService接口继承于ACommonService
2)ACommonService接口定义DTO,VO,DTO互相之间转换的规范,需要SpOfferServiceImpl去实现。
3)ACommonService会继承另一个顶层接口AEntityService负责实现增删查改的方法


5.顶层接口AEntityService
1)从图上看AEntityService接口有增删改查方法的实现
2)图上所有方法的实现依赖于JDK8提供的特性,接口可以有实现方法,实现方法只需加上default关键字。
3)分析getEntityPage(query,mapper),query封装了查询规则,mapper(BaseMapper)依赖于mybatis plus提供的特性。

DTO,VO,Query,Entity实体类设计意义

1.Entity
Entity映射数据库的表名,表字段,原因是实体类字段命名规范和数据库表字段命名规范不一致,映射的逻辑是由hibernate和mybatis plus实现。

2.Query
Query封装了查询条件的信息,应用于分页查询和列表查询,设计意义在于service层可以去除臃肿的查询逻辑,把查询逻辑转移到Query层中。

3.VO
VO层设计初衷是解决数据库相关表数据和前端列表页面数据不一致的问题,例如VO层含可及多个表的数据。

4.DTO
DTO主要应用于外部数据传输到数据库,例如编辑和新增以及在多个Service层流转,最终数据都会流向到数据库的各个表中,当然在入库之前得保证数据得合法性,所以DTO的另一个意义是做数据校验,把校验逻辑从service层剥离。

日志处理

1)日志处理这里应用了HandlerInterceptor拦截器
2)拦截中生成RequestId,标识唯一请求
3)拦截中解析request请求配置,并把信息入库

异常处理

1)异常处理使用了RestControllerAdvice注解
2)若系统异常,这里拦截了web请求的异常,并统一处理返回结课。
3)解析异常数据并入库。

开发的顶层接口源码后面会发布到gitHub上,敬请期待。

Java后台项目的顶层设计思路相关推荐

  1. Java毕设项目旅游网站设计(java+VUE+Mybatis+Maven+Mysql)

    Java毕设项目旅游网站设计(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webst ...

  2. 天津地铁出行线路规划项目需求分析与设计思路分析

    天津地铁出行线路规划项目需求分析与设计思路分析 项目概要 以下是天津地铁线路总图,本项目的受众可以通过本软件,获得天津市地铁出行最便捷,最快速的线路推荐. 需求分析 实现一个帮助进行地铁出行路线规划的 ...

  3. Java后台项目开发规范

    Java后台项目开发规范 写在前边 1.目标 2. 原则 一.命名规范 1.包命名规范 2.类命名规范[**UpperCamelCase命名法**] 2.1==如果在模块或者接口,类,方法中使用了设计 ...

  4. 商家后台1.0的设计思路

    作为平台型电商最重要的参与者之一,商家自然需要有一套独立的操作后台(系统).商家后台涉及三个层面,且以由底往上的顺序流转进行.大体可以概括为此三层:操作层,数据层,运营层:本文将会从各个场景切入,随着 ...

  5. java BPM平台1:设计思路

    自己开发过一款.net(sqlserver)版的BPM系统,想着是否可以做一个java(oracle)同款的,一直都没有时间,也没有做过java的开发,需要熟悉很多新的知识,现在抽空开始进行构思设计, ...

  6. 信贷评分卡的顶层设计思路

    顶层设计是运用系统论的方法,从全局的角度,对某项任务或者某个项目的各方面.各层次.各要素统筹规划,以集中有效资源,高效快捷地实现目标. "顶层设计",正成为中国新的政治名词,在政府 ...

  7. 后台网站首页制作设计思路

    首先我们可以在一些优秀的后台网站的首页的里面寻找一些有用的东西和一些新奇的东西,还有这个后台网站的排版以及设计思路还有他的颜色搭配等等,所以我们在制作首页的时候如果思路想不出来,我们就可以在网上搜索一 ...

  8. Java EE项目中异常设计及处理总结

    异常设计 0.J2EE中的异常设计3层结构 Dao,Service,Controller异常处理原则:应该在Controller控制转发之前尽量处理,同时记录log日志,然后在页面以友好的错误提示告诉 ...

  9. java毕设项目购物网站设计(附源码)

    项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. Android Handler研究(1)
  2. Zstd 压缩性能分析(含比较)
  3. adas记录仪app_4K旗舰丨盯盯拍MINI5智能行车记录仪荣耀新生!
  4. AgileConfig - 轻量级配置中心1.2.0发布,全新的UI
  5. 华为Mate 30系列将升级25W无线快充:充电方面无对手
  6. Enterprise Architect 8.0 注册码及其使用教程
  7. atitit查询表修改表字段没反应--解锁锁定的表
  8. android 2048 游戏 源码
  9. 【cs231】反向传输与神经网络
  10. PHP表格数据Excel转图片输出通用方法,列可自动拓展
  11. cad命令栏还原默认_将CAD恢复到默认界面的两种方法,来看看吧
  12. django提供的admin后台增加用户时提示:“Table ‘login.login_user‘ doesn‘t exist“
  13. Matlab的对角阵、三角阵,矩阵变换:矩阵的转置、旋转、翻转、求逆、方阵的行列式、矩阵的秩求解
  14. 微信抖音工具箱头像制作壁纸小程序带改图制图流量主功能搭建动态社群人脉助手
  15. 透视星环科技上市:基础工具、技术融合、场景应用三维击穿
  16. 【loj6184】无心行挽(虚树+倍增)
  17. The “fxp/composer-asset-plugin“ plugin was skipped because it requires a Plugin API version (“^1.0“)
  18. 如何判断用户是否关注微信订阅号,亲测实战步骤
  19. 大数据清洗2(元素操作)
  20. 【Note4】shell语法,ssh/build/scp/upgrade,环境变量,自动升级bmc,bmc_wtd,peci,软连接

热门文章

  1. java全角、半角标点符号 操作
  2. 抖音名字怎么改不了_抖音名字怎么改不了怎么办
  3. 接口设置trunk怎样再改为access
  4. 移动应用安全保护平台CEO高磊,年轻有为!!!
  5. js获取最近一年(12个月)的月份
  6. 串口与普通IO口的区别
  7. Salesforce CRM系统排名?Salesforce CRM办公系统怎么选?什么是用户口碑最好的Salesforce CRM系统?
  8. 【CSDN实训】JAVA——基础知识实练:外卖配送费计算
  9. 【源码】海洋数据工具:用于与大量免费获得的海洋学数据交互的MATLAB工具箱
  10. 光明勇士iOS服务器维护,《光明勇士》3月5日iOS部分区服数据互通