Java环绕通知执行流程
时间: 2024-06-21 21:03:14 浏览: 142
java实现工作流程
3星 · 编辑精心推荐
在Java中,环绕通知(Around advice)是AspectJ(一种强大的面向切面编程框架)中的一个重要概念,它是AOP(面向切面编程)中的通知类型之一,用于在方法执行前后或特定代码块执行时插入自定义的行为。环绕通知的执行流程通常包含以下几个步骤:
1. **连接通知点(Join Point)**:首先,AspectJ会在特定的编程点,比如方法调用、异常处理等,找到一个通知点。这被称为join point。
2. **通知引入(Advice Execution)**:当环绕通知被定义后,它会被引入到连接的join point上。开发者可以使用`@Around`注解来声明这是一个环绕通知。
3. **通知拦截(Advice Invocation)**:通知拦截器(advice instance)开始执行。它有机会修改或增强原始的方法调用行为。
4. **通知开始(Before)**:环绕通知的第一个部分是before advice,它会在目标方法执行前被调用。这时,通知可以访问到方法的相关信息,但方法尚未执行。
5. **目标方法执行(Target Method Execution)**:在此阶段,目标方法按照正常流程被调用。
6. **通知继续(After)**:执行完目标方法后,after advice会执行,通常用于清理工作或记录日志。
7. **通知返回(Return) 和 Exception Handling (Throw/Finally)**:如果目标方法返回结果,after-return advice会在返回后执行;如果抛出异常,对应的after-throw或around-throw advice会被调用。如果finally中有通知,无论是否异常都会执行。
8. **通知结束(After Returning/Throwing/Finally)**:通知的最后阶段,after-returning, after-throwing, 或 finally advice 将被执行,然后通知流程结束。
阅读全文