Rpc接口
request
- 实现Serializable接口,实例化数据
- 继承BaseAmsRequest类,封装操作人
- 参数要带上@ApiModelProperty,说明参数的含义
对于Long、Integer等类型的参数,使用@NotNull限制非空,使用@Min和@Max限制最小值和最大值
对于String类型的参数,使用@NotBlank限制非空
对于List类型的数据,使用@Size(max =500, min =1)限制列表元素的个数
response
- 参数要带上@ApiModelProperty,说明参数的含义
- 使用模板类BaseResponse,封装一些信息,如是否成功,错误号和错误信息
mybatis生成模板
- columnOverride
将数据库中表的字段映射到对应的java类型。Boolean类型的值在数据库用tinyint存储;对于String类型的数据,短的话可以用varchar存储,长的话可以用text
<columnOverride column="is_deleted" javaType="Boolean"/>
- ignoreColumn:
忽略数据库表中的某些字段
<ignoreColumn column="created_at"/>
建表sql语句
- 主键
一定要有主键id,并且设置自增长
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id'
- 创建和更新时间:
一定要有创建时间和更新时间
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- 是否删除字段
一切数据都是软删除,在查询时加限定条件查询
`is_delete` tinyint(3) NOT NULL DEFAULT '0' COMMENT '删除标志',
索引
- 设置主键索引
PRIMARY KEY (`id`) USING BTREE,
- 设置联合索引
UNIQUE KEY `uk_mkt_nid_lid` (`mkt_nid`,`lid`),
- 设置key索引
KEY `idx_created_at` (`created_at`),KEY `idx_updated_at` (`updated_at`),
- 在写查询sql语句时,先写加入索引的字段
编程习惯
判断非空
- 在写接口时,参数要进行非空判定
- 对于Integer、Long、Class等类型的数据,使用Objects.nonNull判断是否为空
- 对于String类型的数据,使用StringUtils.isNotBlank判定非空
- 对于List类型的数据,使用CollectionUtils.isNotEmpty判定非空后,再进行遍历
设置默认值
- 对于sortType等形式的字段,设置默认值,前端不一定传入
- 在写rpc接口时,首先给response中的各个字段值赋默认初始值,再编写业务逻辑
分页逻辑
request
- pageNum:第几页
- pageSize:页的大小
- sortType:排序类型,1-升序,2-降序,可以设置默认值
- sortField:排序字段,对哪个字段进行排序,可以设置默认值
response
- List<>:查询列表
- totalNum:总的数量
- hasMore:是否还有下一页
repository
example.setOrderByClause("created_at " + sortType + " limit " + offset + "," + length);
操作记录流水
- 记录操作人、操作类型、操作描述和操作信息
- 编写enum类,加入@Getter和@AllArgsConstructor注解,设置操作类型opType和操作记录opDesc
- 写一个私有方法addOpLog,在需要加入操作记录时,直接调用
消息队列
优势:异步、限流、多线程并发消费
原文地址:http://www.cnblogs.com/yanchaoyi/p/16801240.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性