首页 > 编程语言 > 详细

java自定义注解的使用-基于AOP的自定义日志配置

时间:2020-06-29 22:04:51      阅读:68      评论:0      收藏:0      [点我收藏+]

话不多说直接上代码:

注解类:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyLog {

}

代理类:

@Component
@Aspect
public class LogAspects {
@Pointcut("@annotation(com.example.demo.aop.MyLog)")
public void pointCut() {
    
}
@Before("pointCut()")
public void beforeMethod() {
    System.out.println("before方法执行中。。。。。。");
}
@After("pointCut()")
public void afterMethod() {
    System.out.println("after方法执行中。。。。。。");
}
@AfterReturning("pointCut()")
public void afterReturningMethod() {
    System.out.println("afterReturning方法执行中。。。。。。");
}
@AfterThrowing("pointCut()")
public void afterThrowingMethod() {
    System.out.println("afterThrowing方法执行中。。。。。。");
}
@Around("pointCut()")
public Object aroundThrowingMethod(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
    System.out.println("Around之前的方法执行中。。。。。。");
    Object o = proceedingJoinPoint.proceed();
    System.err.println(o);
    System.out.println("Around之后的方法执行中。。。。。。");
    return o;
}
}

controller层:

@RestController
public class LogTestController {
    @MyLog
    @GetMapping("/logTest")
    public String logTest(@RequestParam("id") int id, @RequestParam("name") String name) {
        System.out.println("id:" + id + "   " + "name:" + name);
        return id+name;
    }
}

说白了就是那个方法上标注了MyLog注解就代理谁

java自定义注解的使用-基于AOP的自定义日志配置

原文:https://www.cnblogs.com/mcjhcnblogs/p/13210449.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!