Spring AOP

2021-05-11 17:27

阅读:502

标签:join   定义   system   tty   tco   dep   test   ota   execution   

1. pom依赖

org.springframework.boot
     spring-boot-starter-aop

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";
    }
}

Spring AOP

标签:join   定义   system   tty   tco   dep   test   ota   execution   

原文地址:https://www.cnblogs.com/PersonalDiary/p/13149987.html


评论


亲,登录后才可以留言!