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";
        }
    }
  • 相关阅读:
    java8特性 Optional 工具类
    SpringBoot 配置支付宝接口
    Redis宕机 快速恢复
    flowable流程引擎通过模型ID部署流程
    java OA系统 自定义表单 流程审批 电子印章 手写文字识别 电子签名 即时通讯
    Mybatis 动态执行SQL语句
    idea 访问 jsp 404问题
    变量名的命名
    CSS设计 Search窗口
    jQuery实现Ajax功能示例
  • 原文地址:https://www.cnblogs.com/PersonalDiary/p/13149987.html
Copyright © 2011-2022 走看看