何为jpa 只做单表映射,表与表之间解耦 将表与表的关系放在java代码中处理,代码中运用到大量的构建者模式与java8新特性处理
框架模式为组件库、各模块引入组件库并注册到consoul注册中心
- po 数据库映射层、实体类
- repository 可以说是dao层 以Repository 作为后缀 继承 JpaRepository
可实现基本JPA接口,继承QuerydslPredicateExecutor 可实现querydsl基本接口 - service 基本服务层 Impl为具体实现层 业务代码层
- controller 控制层 接口层
- bo 主要放置两种类 效验request类与 返回response类
- exception 定义异常 一个类继承RuntimeException 并构造一个参数状态码方法 另一个枚举类存放
- constants 定义RedisKeyConstants存放Redis基本key
详细参考 http://www.ruanyifeng.com/blog/2015/12/git-workflow.html
- 拉取项目后进入项目文件夹 git flow init
- 在develop下新建一个开发feature分支myfeature
git flow feature start myfeature
此时可在feature/myfeature分支下 - 将代码提交到该feature分支命令为:
git add .
git commit -am ‘更新内容’
git flow feature publish myfeature - 将该代码提交到develop分支为
重复上面操作后 git push - 删除分支
首先切换分支 git checkout develop
git checkout .
删除 git branch -D 分支名
查询所有分支 git branch -a
该模式使用很灵活 在JPA中有:
-
拼接多个单表查询返回的数据 并返回给Response
-
提供Reqeust的build方法将其赋值给实体类用于JPA操作
- 处理Repository调用数据库操作返回的空指针
常用的orElseGet(PO::new) 可将其返回新的对象
orElseThrow(()->new Exception(ExcetionCode.CODE))可抛出定义好异常
返回PO - @Validated/@Valid
@Validated主要用在impl类和Service的皆接口上
@Valid主要用在Service的接口上
单个参数使用@NotEnpty
类使用@Vaild 并在类中对需要效验的参数进行效验
groups 可以对效验建立组 在接口上判断这个组需要效验那些参数
请求结果如下
用于处理返回数据Response的包装类
主要使用.ok()方法处理service的返回值
少补…
规范 数据库设计规范- 表名 业务名称+模块名称+表名
- id作为业务内部关联字段 还需有一个前端所需交互唯一字段
- 字段名 只需包含字段 不需要表名_字段名 comment需说明清晰字段作用 关联字段使用全表缩写id
- 字段名顺序 主要字段放前面 不重要每个表都有的字段放后面如remark
- 索引 主键索引 唯一索引:比如关联字段与id /disabled与id
- 注释 注释需在所有使用到地方标明清晰 如实体类、repository、service、impl、controller、Bo…等;标明作用 返回值@return {@link Po} @param 参数 作用
- controller请求参数 参数在其他业务类中需标明类+字段名小写 请求类可统一用parameter
- 重写 同一个类多处调用的冗余代码写在同一个同一个内部方法中、多处使用的代码封装在组件库中调用
- 通过使用java8特性和建造者模式让代码简洁
- repository 方法名尽量精简



