zoukankan      html  css  js  c++  java
  • java自定义注解的使用-基于AOP的自定义日志配置

    话不多说直接上代码:

    注解类:

    @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注解就代理谁

  • 相关阅读:
    hdu2818 Building Block
    struct2面试准备
    Spring mvc 面试
    Spring 面试详解
    Java面试必备Springioc上
    redis高级命令4 持久化机制 、事务
    redis高级命令3哨兵模式
    redis高级命令2
    redis高级命令1
    redis基础二----操作set数据类型
  • 原文地址:https://www.cnblogs.com/mcjhcnblogs/p/13210449.html
Copyright © 2011-2022 走看看