liuam 2eb1ffdde3 修改店铺资历证明无法保存bug 7 years ago
..
com 2eb1ffdde3 修改店铺资历证明无法保存bug 7 years ago
Readme.md ffefc5d8f1 初始化git 8 years ago

Readme.md

模块说明

  1. 除support\config\filter,其余各包为各具体业务模块包

结构规则

  1. 新增功能规则:如果与现有模块不存在关联,则直接扩充新模块;否则,结合具体业务情形,选择新增模块或者扩充某模块
  2. 模块扩充规则:尽量保持当前模块的领域活动单一,否则,拆分模块
  3. 接口类设计规则:根据接口的权限分为api 和 controller,接口类尽量依据业务进行命名创建,保持接口类功能职责单一,业务耦合度低
  4. 业务设计规则:业务service类如果只关注与简单的CRUD或业务逻辑简单,不需要牵涉过多其他实体业务逻辑,采用service即可;如果需要多个业务类的协作,才完成复杂的业务,考虑添加facade类使业务逻辑清晰;保持业务类的职责单一

命名规则

  1. 所有命名采用英文 + 驼峰
  2. 所有包名全部用小写,所有类名首字母大写

注释规则

  • 文件名称与描述必须填写
  • 文件作者必须填写
  • 每次修改记录版本信息,版本信息记录:修改时间、

    /**
    * 用户信息的请求
    * 
    * @author yujia
    * @version 2016年7月1日 上午11:35:16 yujia 获取个人用户资料的数据 
    * @version 2017年8月1日15:17:38 suntg 完善类的注释
    */
    @RestController
    @RequestMapping(value = "/basic/user")
    public class UserController {
    // TODO
    }
    
    

方法

  • 所有public的方法(简单的getter\setter除外)都要注释
  • 方法注释必须要写方法说明、参数说明
  • 参数具体到每一个参数

    /**
    * 类的注释
    */
    public class KindController {
        
    //...
        
    /**
     * 根据类目ID获取类目的子类目
     * 
     * @param parentId 类目ID
     * @return
     */
    @RequestMapping(value = "/{parentId}/children", method = RequestMethod.GET)
    @ResponseBody
    public List<Kind> getProductKinds(@PathVariable("parentId") Long parentId) {
        return kindService.getChildProductKinds(parentId);
    }
        
    //...
        
    }
    

属性

  • model实体对象的属性,枚举类内容,或者其他一些关键属性都必须写注释
  • 注释内容说明该属性表示的含义

    public class Kind {
        
    /**
     * 在父级类目中的排序序号
     */
    @Column(name = "ki_detno")
    private Short detno;
    	
    
    }
    

用户操作日志

  • 采用AOP方式对所有的@RequestMapping请求自动添加调用记录
  • 主要利用swagger的两个注解,@ApiOperation@ApiParam
  • @ApiOperation 用于API描述说明
  • @ApiParam 用于每个参数的描述说明
  • 调用日志记录时会自动获取@ApiOperation的value字段信息,自动为请求添加请求说明

    public class Kind {
        
    /**
     * 商品类目
     * 
     * @param kindIds
     *            要获取的明细Id,多个用逗号(,)隔开
     * @return
     */
    @RequestMapping("/{kindIds}")
    @ResponseBody
    @ApiOperation(value = "根据多个ID获取多个类目信息", httpMethod = "GET", notes = "允许获取多个分类,用逗号,分开")
    public Iterable<Kind> getProductKind(@ApiParam(required = true, value = "id数组") @PathVariable("kindIds") String kindIds) {
        return kindService.getProductKinds(kindIds);
    }
    	
    
    }
    

API接口说明文档

  • 利用swagger 自动生成API说明接口