zoukankan      html  css  js  c++  java
  • Spring AOP

    1. pom依赖

    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>

    2. 自定义注解

    /**
     * MyLog
     *
     * @Author zpf
     * @Date 2020-06-16 22:52:49
     */
    @Documented
    @Target({ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Clc {
        String value();
        String name() default "";
    }

    3. 切面

    /**
     * MyAspectJ
     *
     * @Author zpf
     * @Date 2020-06-16 22:54:25
     */
    @Component
    @Aspect
    public class MyAspectJ {
    
        /**
         *  方法一: 通过自定义注解 好处: 注解自定义,想放哪放哪,比较灵活,但是对于批量切入某些类不适用
         */
        @Pointcut("@annotation(com.royal.framework.annotations.Clc)")
        public void pointCut() {}
    
        /**
         *  方法二: 通过切入某些类 好处:对于某些类,可以进行统一管理
         *
         */
    //    @Pointcut("execution(* com.royal.framework.controller.*.*(..))")
    //    public void pointCut() {}
    
        @Around("pointCut()")
        public Object deBefore(ProceedingJoinPoint pjp) throws Throwable {
            System.out.println("---------方法执行之前-------------");
            // 执行原方法,并记录返回值。
            Object proceed = pjp.proceed();
            System.out.println("---------方法执行之后-------------");
            return proceed;
        }
    }

    4. 控制器层测试

    /**
     * TestController
     *
     * @Author zpf
     * @Date 2020-06-16 22:52:03
     */
    @RestController
    public class TestController {
    
        @GetMapping("/index")
        @Clc(value = "测试",name = "test")
        public String getIndex(String username){
            System.out.println("userName=" + username);
            return "This is index";
        }
    }
  • 相关阅读:
    JavaScript实现上传图片预览[js前端实现]
    Java内存Happen-Before
    《干净架构读书笔记》——业务驱动编程
    《干净架构读书笔记》——编程范式
    Scrum中的冲刺和迭代
    Spring Cloud中通过Kafka传递自定义Header
    领域驱动开发(DDD)Web开发中的典型分层
    给开发团队减减负
    业务实体和用例
    什么是好的代码-代码Review要点
  • 原文地址:https://www.cnblogs.com/PersonalDiary/p/13149987.html
Copyright © 2011-2022 走看看