1、引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2、创建需要监控的对象
@RestController
@RequestMapping(value="/goods")
public class GoodsController {
@Resource
Goods goods;
@GetMapping("/goodsInfo")
public String goodsInfo(){
System.out.println("goodsInfo");
return goods.getName() + " " + goods.getNum() + " " + goods.getNum();
}
}
3、创建切面类
包括切面表达式和切面行为,通过proceedingJoinPoint可以获取对象的属性
@Aspect
@Component
public class GoodsControllerAopAdvice {
@Pointcut("execution (* com.example.dyc.controller.*.*(..))")
public void test() {
}
@Before("test()")
public void beforeAdvice() {
System.out.println("beforeAdvice...");
}
@After("test()")
public void afterAdvice() {
System.out.println("afterAdvice...");
}
@Around("test()")
public void aroundAdvice(ProceedingJoinPoint proceedingJoinPoint) {
System.out.println("before");
try {
proceedingJoinPoint.proceed();
} catch (Throwable t) {
t.printStackTrace();
}
System.out.println("after");
}
}