# 开发规范说明
# 读者对象
- 系统架构师
- 项目开发人员
# 版本说明
版本 | 更新日期 | 备注 |
---|---|---|
- 1.0.0-RELEASE | 20200713 | 暂停更新 |
- 2.0.0-RELEASE | 20200813 | 集群 |
- 2.1.0-RELEASE | 20201210 | 集群 |
- 2.5.0-RELEASE | 20210610 | 集群 |
# 开发环境
利用框架进行开发时的开发环境参考。
- MySQL+JDK 1.8
# 包规范
- 统一将项目建到com.jinke.ts.*....下
# 持久层
- 持久层,框架提供三种支持方式, Mybatis、Hiberate、Ibatis。此处的规范主要针对 Mybatis,其它持久框架可做为参考实行。 Mybatis 的持久化分为两个主要部分:接口层、XML(实现层)。
- 接口层
1.接口层的mapper 包路径建议分为 read ,write 两个文件夹,为读写分离升级做准备。其中 read 文件夹下的 mapper 文件只能出现查询接口,与其对应的 xml 中,只能出现
<select>
标签。write 文件夹下的 mapper 文件只能出现增删改接口,与其对应的xml中,只能出现<insert>、<update> 、<delete>
标签。 2.由于Mybatis 的工作原理,每一个方法 mapper 对应的ID 由接口全路径+方法名实现,所以每一个mapper接口中的方法名不可重复,不存在重载一说。 - XML
# 服务层
服务层即Service层,该层主要负责所有的业务逻辑过程处理。
Service 层和 Mapper 层建议一样,建议包路径分别新建 read 和 write 两个包。其中read 包下只有读事务,write 下负责写事务。
在Service 层,需要留意的内容如下:
@Service 注解必须搭配 @ TsTransactional 或者 @NoTransactional注解之一。 如果该类为读事务,则需要@ TsTransactional( readOnly = true )。 如果写事务,则直接使用 @ TsTransactional 即可。具体使用,请参阅《事务使用文档》。 该层的Mapper 层使用 @Resource 注入。
# 控制层
控制层,即现在的 RestService 层。该层主要负责参数接受和数据返回,一般不做逻辑处理。
该层的注入对象主要为Service ,不能跨层注入Mapper。注入方式可采用 @Autowired 或 @Resource。
在@RestService 注解的类中,方法上使用对应的注解使用@PostMapping 或者 @GetMapping。 不建议直接使用 @RequestMapping 。命名空间指明路径,方法上得注解尽量只留一个(复合)单词,方法上得路径尽量不要包含“/”
数据返回尽量通过继承 BaseRestService 进行返回,框架做统一处理
# 包命名规范
实体类Po放在entity包下(Po是与数据库的增删改打交道的对象)。
mapper包下建read和write两个包,分别放入读和写的Mapper接口类。
rest包下放RestService类。
service下新建read和wirte两个包,分别放读和写的Service接口类,实现类放在同级目录下的impl包中。
vo包下放Vo类(Vo类是与前台打交道以及查询打交道的对象)。
resources下mapper包下建read和write包,分别放入读和写的mapper配置文件。
# 类命名规范
类名应采用大驼峰(大驼峰就是一般驼峰命名法的首字母大写)方式命名。
类名要有实际的意义,尽量不使用单词缩写。
rest类以RestService结尾;只读service接口以ReadService结尾,实现类以ReadServiceImpl结尾,可写service接口以WriteService结尾,实现类以WriteServiceImpl结尾;只读mapper类以ReadMapper结尾,可写mapper类以WriteMapper结尾;po类以Po结尾;vo类以Vo结尾。
# 方法命名规范
所有查询方法均以query开头,如果查询所有,则以queryAll+表名命名,例如:查询所有接入系统,则方法名为queryAllAccessSystem;如果是根据主键查询,则query+表名+By+主键名,例如要查询门户系统,则方法名为queryAccessSystemByAccessSystemId。
所有更新方法均以update开头,批量更新以updateBatch开头。
所有删除方法均以delete开头,批量删除以deleteBatch开头。
所有新增方法均以add开头,批量新增以addBatch开头。
# 字段(变量或属性)命名规范
- Vo,Po 的字段命名尽量和数据库字段对应,然后转小驼峰(平时所用驼峰命名法,即首字母小写,其它单词首字母大写)。增加代码逻辑和sql 可读性。
- 临时变量命名采用小驼峰命名,且应有实际含义,而非 a, b 这类无实际含义变量名。
# 配置规范
所有配置,除系统启动加载必须配置,原则上所有配置都应当统一配置到nacos 配置中心