问题分析

业务表中有公共字段

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

实现思路

  1. 自定义注解AutoFill(标识一下哪些方法需要处理),用于标识需要进行公共字段自动填充的方法
  2. 自定义切面类 AutoFillAspect ,统一拦截加入了AutoFill注解的方法,通过反射为公共字段赋值
  3. 在Mapper 的方法上加上 AutoFill注解

技术点: 枚举 注解 AOP 反射

Spring AOP (面向切面编程)

  1. @Before
类型 前置通知
介绍 在目标进行之前执行的通知
特点1 ·不能阻止目标方法执行(除非抛出异常)
特点2 ·无法获取目标方法的返回值(因为目标方法还未执行)
1
2
3
4
@Before("execution(* com.example.service.*.*(..))")
public void beforeAdvice() {
System.out.println("【前置通知】目标方法即将执行");
}