1、创建日志注解
@Target({ElementType.METHOD})//方法注解
@Retention(RetentionPolicy.RUNTIME)//运行时可见
pulic @interface LogAnno{
//操作类型 增删改查
String czType() default "";
//备注
String remarks() default "";
}
2、循环通知的方法
@Component
@Aspect
pulic class LogAopAspect{
@Aound("@annotation(LogAnno的路劲)")
public Object aroundAdvice(ProceedingJoinPoint pip) throws Throwable{
//1、方法执行前通知,相当于前置通知
//获取方法签名
MethodSignature ms = (MethodSignature )pip.getSignature();
//获取方法
Method method = ms.getMethod();
//获取方法上面的注解
LogAnno la = method.getAnnotation(LogAnno.class);
//获取注解上面的属性
//操作类型 增删改查
String type = la.getczType();
Object reO = null;
try{
//代理方法执行
reO = pip.proceed();
//方法执行完,相当于后置通知
System.out.println("方法执行完,相当于后置通知");
}catch(Exception e){
System.out.println("抛出异常");
throw e;
}finally{
System.out.println("最终执行");
}
result reO;
}
}
3、将注解放到方法上面 @LogAnno(czType=“新增”)
|