首页 > 其他分享 >AOP简化公共属性create_time,create_user,update_time,update_user记录的重复代码

AOP简化公共属性create_time,create_user,update_time,update_user记录的重复代码

时间:2024-06-03 15:14:09浏览次数:26  
标签:AOP create time update user 公共

处理这些公共字段, 需要在每一个业务方法中进行操作, 编码相对冗余、繁琐

使用AOP切面编程,实现功能增强,来完成公共字段自动填充功能。

1.2 实现思路

在实现公共字段自动填充,也就是在插入或者更新的时候为指定字段赋予指定的值,使用它的好处就是可以统一对这些字段进行处理,

避免了重复代码。在上述的问题分析中,我们提到有四个公共字段,需要在新增/更新中进行赋值操作, 具体情况如下:

序号字段名含义数据类型操作类型
1 create_time 创建时间 datetime insert
2 create_user 创建人id bigint insert
3 update_time 修改时间 datetime insert、update
4 update_user 修改人id bigint insert、update

实现步骤:

1). 自定义注解 AutoFill,用于标识需要进行公共字段自动填充的方法

2). 自定义切面类 AutoFillAspect,统一拦截加入了 AutoFill 注解的方法,通过反射为公共字段赋值

3). 在 Mapper 的方法上加入 AutoFill 注解

技术点:枚举、注解、AOP、反射

标签:AOP,create,time,update,user,公共
From: https://www.cnblogs.com/lllllzj/p/18228909

相关文章

  • 使用form-create监听组件的事件
    FormCreate是一个可以通过JSON生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持5个UI框架,并且支持生成任何Vue组件。内置20种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定FormCreate官网:https://www.form-create.com帮助文档:https://form-create.c......
  • 使用form-create时修改表单数据
    FormCreate是一个可以通过JSON生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持5个UI框架,并且支持生成任何Vue组件。内置20种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定FormCreate官网:https://www.form-create.com帮助文档:https://form-create.c......
  • 使用form-create生成表单组件
    FormCreate是一个可以通过JSON生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持5个UI框架,并且支持生成任何Vue组件。内置20种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定FormCreate官网:https://www.form-create.com帮助文档:https://form-create.c......
  • Error creating bean with name 'userController': Unsatisfied dependency expressed
    SSM整合项目搭建时,项目启动报错,报错内容如下:org.springframework.beans.factory.UnsatisfiedDependencyException:Errorcreatingbeanwithname'userController':Unsatisfieddependencyexpressedthroughfield'userService';nestedexceptionisorg.springfra......
  • 日常Bug排查-MVCC和for update混用导致读数据不一致
    日常Bug排查-MVCC和forupdate混用导致读数据不一致前言日常Bug排查系列都是一些简单Bug的排查。笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材。Bug现场又是喜闻乐见的读数据不一致的问题。这次的问题是这样,业务在一个事务中更新A和B两个表的两个数据。但是在另一......
  • React(五)UseEffect、UseRef
    (一)useEffectuseEffect–React中文文档 useEffecthook用于模拟以前的class组件的生命周期,但比原本的生命周期有着更强大的功能1.类组件的生命周期在类组件编程时,网络请求,订阅等操作都是在生命周期中完成importReact,{Component}from'react'exportdefaultc......
  • 报错信息:Invalid bound statement (not found): org.example.mapper.UserMapper.selec
    分析出现错误的原因:使用package标签加载映射sql文件,要求需要Mapper接口名称需要和映射文件相同,并且在同一个目录中。由图可见,三个位置目录及名称都一致,但是运行还是报错。经过一番折磨,最后在windows系统文件中发现我在idea里建的多层文件夹其实是一个文件夹在idea创建Direct......
  • 关于使用 conda create -n blog_project 创建项目的时候报错问题
    大致报错如下:Traceback(mostrecentcalllast):File"E:\ProgramData\anaconda3\Lib\site-packages\conda\exception_handler.py",line17,in__call__returnfunc(*args,**kwargs)^^^^^^^^^^^^^^^^^^^^^File&......
  • 【漏洞复现】大华 DSS 数字监控系统 user_edit.action 信息泄露漏洞
    0x01产品简介大华DSS数字监控系统是大华开发的一款安防视频监控系统,拥有实时监视、云台操作、录像回放、报警处理、设备管理等功能。0x02漏洞概述大华DSSQ数字监控系统user_edit.action接囗处存在信息泄露漏洞。未经身份验证的远程攻击者可利用此漏洞读取后台管......
  • [论文阅读] FontDiffuser@ One-Shot Font Generation via Denoising Diffusion with M
    Pretitle:FontDiffuser:One-ShotFontGenerationviaDenoisingDiffusionwithMulti-ScaleContentAggregationandStyleContrastiveLearningaccepted:AAAI2024paper:https://arxiv.org/abs/2312.12142code:https://github.com/yeungchenwa/FontDiffuserref:......