ProceedingJoinPoint 和 JoinPoint什么区别
时间: 2023-11-09 22:18:46 浏览: 134
SpringBoot实现过滤器、拦截器与切片的实现和区别
ProceedingJoinPoint和JoinPoint是AspectJ中的两个接口,它们的区别在于功能和使用场景。JoinPoint接口是ProceedingJoinPoint接口的父接口。
JoinPoint接口用于表示连接点,即在程序执行过程中的特定位置,例如方法调用、方法参数、异常抛出等。通过JoinPoint接口,我们可以获取连接点的相关信息,如方法名、参数值等。它是AOP中各种通知方法的参数之一,可以通过将第一个入参声明为JoinPoint类型来访问连接点上下文的信息。
ProceedingJoinPoint接口继承自JoinPoint接口,在JoinPoint的基础上增加了一个proceed()方法。proceed()方法的作用是让目标方法继续执行,这是在环绕通知中的一个重要步骤。通过调用proceed()方法,可以触发AOP代理链的执行。环绕通知和前置、后置通知的一个最大区别就在于是否调用proceed()方法。
简而言之,JoinPoint接口用于获取连接点信息,而ProceedingJoinPoint接口除了可以获取连接点信息外,还可以控制连接点的执行流程。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [proceedingjoinpoint和joinpoint区别](https://blog.csdn.net/sinat_19528249/article/details/105035791)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [JoinPoint和ProceedingJoinPoint区别](https://blog.csdn.net/m_shang/article/details/114538561)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文