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

  • 相关阅读:
    线性Softmax分类器实战
    线性SVM分类器实战
    今日心得:读书
    今日心得:正能量
    Excel导出POI
    mysql数据库操作命令
    git常用命令
    list对象 利用Map去除对象中字段的重复
    SpringMVC 利用POI的Excel导出
    利用ajax进行页面加载进行信息展示时,一直不提加载,转圈,不反回问题。
  • 原文地址:https://www.cnblogs.com/mcjhcnblogs/p/13210449.html
Copyright © 2011-2022 走看看