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

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

絮叨


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


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


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


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


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

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

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

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

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


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

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


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


公共属性抽象


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


定义一个自定义的注解

DefaultParams

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


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


自定义注解的切面实现

DefaultParamsAspect

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


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


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

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


具体的使用

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

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

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


结束


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

相关文章
|
3天前
|
前端开发 Java 程序员
牛皮的程序猿后端返回值怎么定义
在后端接口封装中,通常会统一返回数据格式,确保稳定性和可预测性。常见的模式包括状态码(如`code`或`ret`)、状态信息(`message`或`msg`)、核心数据(`data`)。`success`字段提供了一种直观判断接口是否成功的标志。例如:
8 0
|
1月前
|
存储 Java C#
静态字段科普:从原理到代码实践
静态字段科普:从原理到代码实践
21 0
|
1月前
|
存储 编译器 程序员
近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)
近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)
119 0
|
10月前
|
存储 算法 编译器
【C++技能树】再也不怕没有对象了 --初识类
我们先来看看C语言解决一个问题的过程。
51 0
|
数据安全/隐私保护
谈一谈|文档加水印的常见做法
谈一谈|文档加水印的常见做法
94 1
|
存储 机器学习/深度学习 JSON
【Python考试资源】包含重点知识、坑点知识,期末考试看这一份就够了
本文章总结Python的各类知识,并将知识之间进行对比,对期末考试非常有效
185 0
|
11月前
|
SpringCloudAlibaba 算法 前端开发
【Log/Java项目】一个自己写的供情侣们记录生活和表达关心与爱意的小网站
【Log/Java项目】一个自己写的供情侣们记录生活和表达关心与爱意的小网站
190 0
|
前端开发
前端工作总结124-数组转换为对象项目案例
前端工作总结124-数组转换为对象项目案例
96 0
前端工作总结124-数组转换为对象项目案例
|
前端开发
前端工作总结176-注意数据对应接口位置
前端工作总结176-注意数据对应接口位置
48 0
前端工作总结176-注意数据对应接口位置
|
前端开发
前端工作总结131-优化项目的代码显示名字
前端工作总结131-优化项目的代码显示名字
83 0
前端工作总结131-优化项目的代码显示名字