代码结构笔记

193 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第5天

代码框架结构图.png 根据业务架构实践,结合业界分层规范与流行技术框架分析,推荐分层结构如图所示,默认上层依赖于下层,箭头关系表示可直接依赖,如: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的配置,返回类型resultMapresultType的配置。
  • Model层

    主要任务: 数据库实体层,也被称为entity层,pojo层。

    格式要求:

    格式:实体和数据表的对应,swagger注解,属性名,属性注释,实体名

    • 一般数据库一张表对应一个实体类,类属性同表字段一一对应。

    • swagger注解:按照swagger注解规范进行配置

    • 属性名:和数据库中实际属性相对应,命名符合驼峰命名法

    • 属性注释,同数据库中对应的字段,著名属性含义

    • 实体类名:实体类包含三种,普通实体,接口与传入实体,接口返回实体

      • 普通实体,按照注解配置
      • 接口传入实体,按照实际业务前台传回数据,进行配置
      • 接口返回实体,封装后台处理结果,并返回前端

\