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

  • 相关阅读:
    SpringMVC日期类型转换问题三大处理方法归纳
    java 生成execl下载
    阿里maven仓库地址 和 oschina maven仓库地址
    hibernate基础学习
    学习struts2
    Linux下的/dev/sr0
    Oracle 19c(19.3) 单机数据库静默安装
    [转]Oracle 19C的下载和安装部署(图形安装和静默安装)
    CDH entropy was available 问题解决
    CDH当中NFS GATEWAY实例启动失败
  • 原文地址:https://www.cnblogs.com/mcjhcnblogs/p/13210449.html
Copyright © 2011-2022 走看看