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

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

絮叨


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


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


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


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


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

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

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

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

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


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

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


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


公共属性抽象


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


定义一个自定义的注解

DefaultParams

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


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


自定义注解的切面实现

DefaultParamsAspect

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


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


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

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


具体的使用

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

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

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


结束


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

相关文章
|
8月前
|
存储 Java C#
静态字段科普:从原理到代码实践
静态字段科普:从原理到代码实践
72 0
|
SpringCloudAlibaba 算法 前端开发
【Log/Java项目】一个自己写的供情侣们记录生活和表达关心与爱意的小网站
【Log/Java项目】一个自己写的供情侣们记录生活和表达关心与爱意的小网站
321 0
|
编译器 C++
爱上c++的第三天(核心课程):类和对象--对象特性
初始化数据,主要作用于创建对象时为对象的成员属性赋值,构造函数由系统自动调用,无需手动调用。
102 0
爱上c++的第三天(核心课程):类和对象--对象特性
|
前端开发
前端工作总结176-注意数据对应接口位置
前端工作总结176-注意数据对应接口位置
64 0
前端工作总结176-注意数据对应接口位置
|
前端开发
前端工作总结131-优化项目的代码显示名字
前端工作总结131-优化项目的代码显示名字
111 0
前端工作总结131-优化项目的代码显示名字
|
前端开发
前端工作总结124-数组转换为对象项目案例
前端工作总结124-数组转换为对象项目案例
132 0
前端工作总结124-数组转换为对象项目案例
|
前端开发
前端工作总结126-代码中的删除逻辑处理
前端工作总结126-代码中的删除逻辑处理
112 0
前端工作总结126-代码中的删除逻辑处理
|
算法 前端开发 测试技术
测试圈相亲平台开发流程(11):数据层简单实现-个人信息表/择偶要求表
测试圈相亲平台开发流程(11):数据层简单实现-个人信息表/择偶要求表
测试圈相亲平台开发流程(11):数据层简单实现-个人信息表/择偶要求表
|
敏捷开发 前端开发 数据库
测试圈相亲平台开发流程(16):保存修改
测试圈相亲平台开发流程(16):保存修改
测试圈相亲平台开发流程(16):保存修改
|
前端开发
前端工作总结121-判断对象里面是否有0和1
前端工作总结121-判断对象里面是否有0和1
227 0