一、自定义注解
首先自定义注解,本文以添加和更新数据库数据为例,自定义@CreateBy和@UpdateBy注解,便于插入数据时自动注入创建人编号,更新数据时自动注入更新人编号。
以下是注解定义:
/**
* 自动注入创建人的注解
* @author zhifeng
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface CreateBy {
String value() default "";
}
/**
* 自动注入更新人编号的注解
* @author zhifeng
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface UpdateBy {
String value() default "";
}
二、自定义mybatis插件的拦截器
/**
* Mybatis自动注入拦截器
*
* @author zhifeng
*/
@EqualsAndHashCode
@Data
@Accessors(chain = true)
@Intercepts({@Signature(
type = Executor.class,
method = "update",
args = {MappedStatement.class, Object.class})})
@Comp