Spring AOP
2021-05-11 17:27
标签:join 定义 system tty tco dep test ota execution 1. pom依赖 2. 自定义注解 3. 切面 4. 控制器层测试 Spring AOP 标签:join 定义 system tty tco dep test ota execution 原文地址:https://www.cnblogs.com/PersonalDiary/p/13149987.html/**
* 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 "";
}
/**
* 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;
}
}
/**
* 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";
}
}