小六六平时的开发小技巧一(公共属性填充设计)

简介: 前言文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820…

絮叨


小六六打算开一个系列把自己平时的一些开发经验分享出来和大家一起讨论我们平时开发过程中的一个最佳实践,就是想整理出来给大家参考一下,然后一起学习,一起进步


什么是公共属性的填充呢?


就是在我们的表设计的过程中,我们肯定有需要的相同的字段,那这些字段,每次新增的时候,我们都要设置默认值,那么我们在真实的项目开发中说怎么设计的呢?看看下面的吧


一般的公共字段有哪些呢?


  • 主键
  • 创建时间
  • 创建人
  • 修改时间
  • 修改人
  • 逻辑删除:0删除

我相信绝大数的表,这几个字段肯定是会有的,当然小六六说的不是绝对哈,要抬杠的绕道,哈哈!

那么小六六会去怎么设计呢实体呢?

首先我们会有一个 BaseEntity 用来存放这些公共的实体,具体如下

网络异常,图片无法展示
|


然后比如我有一张表 签名表,因为小六六做支付这块的,那么签名这些就是家常便饭了。

网络异常,图片无法展示
|


嘿嘿,我这就是实体的设计了,我相信大部分的小伙伴应该是这样设计的吧,接下来就是我们公共的功能的抽象了


公共属性抽象


就比如说 我上面的签名表 他新增的时候,要填充这些公共属性,然后我配置表也是需要的,那么这部分功能其实说相同的,那么我们如何把这部分的功能抽取出来呢?这边来看看小六六这边的自定义注解的做法


定义一个自定义的注解

DefaultParams

网络异常,图片无法展示
|


先定义一个注解,用来做切面的切点


自定义注解的切面实现

DefaultParamsAspect

网络异常,图片无法展示
|


网络异常,图片无法展示
|


这边来解释下这个切面的写法哈!

  • 首先获取操作的当前用户id
  • 第二步 获取方法的入参
  • 通过反射获取实体的getId的方法
  • 然后判断数据库的实体是否为空,如果为空 则说明是新增,否则就是更新
  • 通过反射去填充这几个公共的参数


具体的使用

来看看我们保存签名的接口

网络异常,图片无法展示
|

只需要在我们的方法上加一个 @DefaultParams注解就能实现公共属性的填充了。


结束


今天的分享就结束了,就是一个小小的技巧,以后这几个系列就用来分享,平时开发中的小技巧。感谢大家的支持,我是小六六, 三天打鱼,二天晒网。

相关文章
|
存储 算法 编译器
【C++技能树】再也不怕没有对象了 --初识类
我们先来看看C语言解决一个问题的过程。
71 0
|
SpringCloudAlibaba 算法 前端开发
【Log/Java项目】一个自己写的供情侣们记录生活和表达关心与爱意的小网站
【Log/Java项目】一个自己写的供情侣们记录生活和表达关心与爱意的小网站
288 0
|
数据库 开发工具 数据安全/隐私保护
开发经验:已经有对象储存,为什么我们还要开发一个图片接口?
开发经验:已经有对象储存,为什么我们还要开发一个图片接口?
99 0
|
存储 JavaScript 前端开发
20个JS精简代码无形装逼集合,最为致命,记得收藏好
20个JS精简代码无形装逼集合,最为致命,记得收藏好
|
前端开发
前端工作总结124-数组转换为对象项目案例
前端工作总结124-数组转换为对象项目案例
120 0
前端工作总结124-数组转换为对象项目案例
|
前端开发
前端工作总结131-优化项目的代码显示名字
前端工作总结131-优化项目的代码显示名字
102 0
前端工作总结131-优化项目的代码显示名字
|
存储 数据采集 算法
库调多了,都忘了最基础的概念-方法篇
库调多了,都忘了最基础的概念-方法篇
150 0
库调多了,都忘了最基础的概念-方法篇
|
数据库 数据安全/隐私保护
【号外】-温习如何画E-R图
【号外】-温习如何画E-R图
【号外】-温习如何画E-R图
|
移动开发 前端开发 JavaScript
自己平时会使用的一个自定义前端结构
这个结构我是根据一些前端技术整合到一起,方便我平时测试一些看到的前端技术,例如CSS、JS等,将理论上升到验证的阶段。
自己平时会使用的一个自定义前端结构