一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第5天
根据业务架构实践,结合业界分层规范与流行技术框架分析,推荐分层结构如图所示,默认上层依赖于下层,箭头关系表示可直接依赖,如:Controller 层可以直接依赖于 Service 层,依此类推:
-
Controller层:
主要任务: 负责具体的业务模块流程的控制,在此层里要调用Service层的接口来控制业务流程。
逻辑要求: 一个Controller方法里,可以引用一个或多个service方法,在Controller方法里不要做逻辑判断,只做service接口的调用。
返回体要求:
- 普通返回体定义为ResponseData,需要封装success,message,rows属性
- 对外接口返回体定义为ResultData,T为对应返回体实体,需要封装success,message,rows属性
格式要求:
包括:方法注解,swagger注解,RequestMapping注解,方法名,异常处理
- 方法注解:按照注解规范进行配置,基础要求:方法描述,作者,时间,参数,返回体
- swagger注解:按照swagger注解规范进行配置
- RequestMapping注解:需配置value地址,指定method方法
- 方法名:符合驼峰命名法,严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
- 异常处理:调用service接口应该放在try{}里,通过catch捕获异常
-
Service层:
主要任务:业务层,存放业务逻辑处理,不直接对数据库进行操作, 有接口和接口实现类 。为提供controller层提供调用的方法,在实现类里调用dao层访问数据库。
逻辑要求: 首先设计接口,再设计实现的类。service实现类可以实现同级调用,一般情况下只调用dao层接口
格式要求:
包括:接口格式,实现类格式
-
service接口要求:按照注解规范配置接口方法的注解
-
service实现类要求:
- 按照注解规范配置方法的注解,基础要求:方法描述,作者,时间,参数,返回体,
- 方法名符合驼峰命名法,严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
- 逻辑处理过程放在try{}catch里,异常知做捕获,抛到controller层做处理。
-
-
Mapper层:
主要任务:数据持久层 , 为service实现类提供查询接口,作用为访问数据库,向数据库发送sql语句,完成 数据 的增删改查任务 。为service实现类提供查询接口,
** 格式要求:**
格式包括:方法注释,方法名称
-
方法注释:符合注释规范进行配置,基础要求:方法描述,作者,时间,参数,返回体
-
方法名称:符合驼峰命名法,严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
-
DAO层
主要任务: 数据访问层,与底层 MySQL、Oracle、Hbase、OceanBase等进行数据交互。
格式要求:
格式包括:resultMap配置,查询方法配置
- resultMap配置:
<result column="FILE_TYPE" property="fileType" jdbcType="VARCHAR" />colum属性对应数据库的字段名,property对应实体类中定义的属性名,jdbcType对应实体类中定义属性的数据类型- 查询方法配置:包括传入参数
parameterType的配置,返回类型resultMap或resultType的配置。
-
Model层
主要任务: 数据库实体层,也被称为entity层,pojo层。
格式要求:
格式:实体和数据表的对应,swagger注解,属性名,属性注释,实体名
-
一般数据库一张表对应一个实体类,类属性同表字段一一对应。
-
swagger注解:按照swagger注解规范进行配置
-
属性名:和数据库中实际属性相对应,命名符合驼峰命名法
-
属性注释,同数据库中对应的字段,著名属性含义
-
实体类名:实体类包含三种,普通实体,接口与传入实体,接口返回实体
- 普通实体,按照注解配置
- 接口传入实体,按照实际业务前台传回数据,进行配置
- 接口返回实体,封装后台处理结果,并返回前端
-
\