设计初衷
1.抽象单表的增删查改功能。
2.设计一套适用于大部分项目的开发规范。
3.提供一套通用的日志处理和异常处理方式。
4.通用功能强大并保持可扩展,与业务无关。
设计原则
1.代码简单易懂(只抽象单表的分页查询,列表查询,删除,新增,编辑,详情功能)
2.接口高度可扩展(大部分后台项目可以基于此进行二次开发)
3.规范开发(提供一套适用于大部分后台项目的规范)
demo走马观花
1.controller入口
1)AbstractController抽象类实现了增删改查接口。
2)SpOfferVO是返回给前端的实体类。
3)SpOfferDTO前端传进的参数实体,用于编辑和新增功能。
4)SpOfferQuery列表查询时传进的查询条件。
5)commonService是AbstractController属性。
2.service入口
1)SpOfferServiceImpl实例类专注于各层实体类的转换。
2)BeanUtil工具类简化Entity,DTO,VO之间的相互转化。
3)SpOfferServiceImpl中增删改查方法的具体功能都会转发到一个顶层接口去实现。
4)SpOfferService接口会继承顶层接口
3.顶层接口ACommonService
1)SpOfferService接口继承于ACommonService
2)ACommonService接口定义DTO,VO,DTO互相之间转换的规范,需要SpOfferServiceImpl去实现。
3)ACommonService会继承另一个顶层接口AEntityService负责实现增删查改的方法
4.顶层接口AEntityService
1)从图上看AEntityService接口有增删改查方法的实现
2)图上所有方法的实现依赖于JDK8提供的特性,接口可以有实现方法,实现方法只需加上default关键字。
3)分析getEntityPage(query,mapper),query封装了查询规则,mapper依赖于mybatis plus提供的特性。