aop切面里的proceed方法
时间: 2023-11-24 22:23:29 浏览: 81
Aop面向切面教程详解
在 AOP 编程中,切面(Aspect)是一种跨越多个类和对象的功能,它可以被视为是在程序中的一个**横切关注点**,比如日志记录、性能统计、安全控制等等。切面可以包含通知(Advice)和切点(Pointcut)两个部分。
通知是在切点处执行的代码,包括 `@Before`、`@After`、`@AfterReturning`、`@AfterThrowing`、`@Around` 等类型的通知。
切点是一组匹配连接点的表达式,连接点是程序中能够触发通知的点,比如方法执行、异常处理等等。
在 AOP 编程中,我们通过定义切面来实现对目标对象的增强,这些增强可以是在目标方法执行之前、之后或者替换目标方法执行的代码。在切面中,我们通常使用 `ProceedingJoinPoint` 对象来调用目标方法。`ProceedingJoinPoint` 是 JoinPoint 的子接口,它提供了 `proceed()` 方法来调用目标方法。
`proceed()` 方法是一个关键方法,它实际上就是调用目标方法的方法。在 `@Around` 通知中,我们可以使用 `proceed()` 方法来实现对目标方法的拦截和替换。如果不调用 `proceed()` 方法,那么目标方法就不会被执行,因此,在 `@Around` 通知中,我们必须调用 `proceed()` 方法来保证目标方法会被执行。
阅读全文