@Around: 环绕通知, 围绕着方法执行
时间: 2024-07-24 07:01:39 浏览: 113
Javascript aop(面向切面编程)之around(环绕)分析
`@Around` 是 Spring AOP (Aspect Oriented Programming) 中的一个通知类型,它允许开发者定义一个环绕通知(advice),这个通知可以在目标方法(target method)执行之前、之后或失败时运行。环绕通知可以看作是包裹在目标方法周围的一段代码,能够对方法的行为进行增强。
举个简单的例子,假设我们想要记录每个方法的执行时间:
```java
@Around("execution(* com.example.service.*.*(..))") // 定义通知的切入点
public Object measureExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {
long startTime = System.currentTimeMillis();
try {
return joinPoint.proceed(); // 执行目标方法
} finally {
long endTime = System.currentTimeMillis();
long executionTime = endTime - startTime;
System.out.println("Method '" + joinPoint.getSignature().getName() + "' took " + executionTime + "ms to execute.");
}
}
```
在这个例子中,`@Around` 注解的方法会在 `com.example.service` 包及其子包下的任何方法执行前后被调用。`proceed()` 方法用于实际执行目标方法,`joinPoint.getSignature().getName()` 获取到的是被通知的方法名。
阅读全文