java @Around环绕切面
时间: 2023-07-03 19:21:13 浏览: 101
@Around是Spring AOP中的一个注解,用于定义环绕通知。环绕通知是AOP中最强大的通知类型,它可以在方法执行前后都执行一些额外的逻辑。
在使用@Around注解时,需要创建一个方法,方法的参数为ProceedingJoinPoint类型,表示当前连接点(方法)的信息,包括方法名、参数等。在方法体中,需要手动调用ProceedingJoinPoint的proceed()方法来继续执行连接点。
下面是一个简单的@Around示例:
```java
@Around("execution(* com.example.service.*.*(..))")
public Object profile(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();
Object result = joinPoint.proceed();
long end = System.currentTimeMillis();
System.out.println("Method " + joinPoint.getSignature().getName() + " executed in " + (end - start) + "ms");
return result;
}
```
上面的代码定义了一个@Around切面,它会拦截com.example.service包中的所有方法,并在方法执行前后记录方法的执行时间。可以看到,在方法体中,我们首先记录了方法执行前的时间,然后调用proceed()方法执行连接点,最后记录了方法执行后的时间并返回方法的执行结果。
阅读全文