1、自定义注解
/**
* 自定义操作日志注解
* @author arli
*/
//METHOD是可注解在方法级别上
@Target(ElementType.METHOD)
//注解在哪个阶段执行,会被编译在class文件中,可以被反射读取
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CarOperation {
// 用户的操作详情(接口实现的操作)
String operation() default "";
}
2、AOP切面
/**
* 设置操作日志切入点 记录操作日志 在注解的位置切入代码
*/
@Pointcut("@annotation(com.jsy.community.util.CarOperation)")
public void operLogPoinCut() {
}
/**
* 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
* @param joinPoint 切入点
* @param keys 返回结果
*/
// value:上面切点的方法名 returning :指定返回值key
//AfterReturning:指定AOP切面