前言
“文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger ”
絮叨
小六六打算开一个系列把自己平时的一些开发经验分享出来和大家一起讨论我们平时开发过程中的一个最佳实践,就是想整理出来给大家参考一下,然后一起学习,一起进步
什么是公共属性的填充呢?
就是在我们的表设计的过程中,我们肯定有需要的相同的字段,那这些字段,每次新增的时候,我们都要设置默认值,那么我们在真实的项目开发中说怎么设计的呢?看看下面的吧
一般的公共字段有哪些呢?
- 主键
- 创建时间
- 创建人
- 修改时间
- 修改人
- 逻辑删除:0删除
我相信绝大数的表,这几个字段肯定是会有的,当然小六六说的不是绝对哈,要抬杠的绕道,哈哈!
那么小六六会去怎么设计呢实体呢?
首先我们会有一个 BaseEntity 用来存放这些公共的实体,具体如下
image.png
然后比如我有一张表 签名表,因为小六六做支付这块的,那么签名这些就是家常便饭了。
image.png
嘿嘿,我这就是实体的设计了,我相信大部分的小伙伴应该是这样设计的吧,接下来就是我们公共的功能的抽象了
公共属性抽象
就比如说 我上面的签名表 他新增的时候,要填充这些公共属性,然后我配置表也是需要的,那么这部分功能其实说相同的,那么我们如何把这部分的功能抽取出来呢?这边来看看小六六这边的自定义注解的做法
定义一个自定义的注解
DefaultParams
image.png
先定义一个注解,用来做切面的切点
自定义注解的切面实现
DefaultParamsAspect
image.png
image.png
这边来解释下这个切面的写法哈!
- 首先获取操作的当前用户id
- 第二步 获取方法的入参
- 通过反射获取实体的getId的方法
- 然后判断数据库的实体是否为空,如果为空 则说明是新增,否则就是更新
- 通过反射去填充这几个公共的参数
具体的使用
来看看我们保存签名的接口
image.png
只需要在我们的方法上加一个 @DefaultParams注解就能实现公共属性的填充了。
结束
今天的分享就结束了,就是一个小小的技巧,以后这几个系列就用来分享,平时开发中的小技巧。感谢大家的支持,我是小六六, 三天打鱼,二天晒网。