每当我阅读官方的Spring AOP文档(link)时,我都会对使用RuntimeExceptions的建议行为感到困惑。有人会检查我的未成年人是否适合以下建议?
@Before
@AfterReturning接口
@AfterThrowing
@After
@Around
答案 0 :(得分:12)
这就是我通常看它的方式。
try {
//@Before
method();
//@AfterReturning
} catch(Throwable t) {
//@AfterThrowing
} finally {
//@After
}
@Around
是一种自己的野兽。由于您选择何时调用目标,因此您可以捕获任何Exception
throw
。try-catch-finally
。因此,您可以轻松地将呼叫包裹在@Order
中,并且可以访问前面提到的任何和所有连接点。
我假设当你说“已执行”时,你的意思是“被执行以至于抛出异常”。
另一件可能对您很重要的是@Order
注释。较高值{{1}}首先出现在前侧,并且它们在后侧向后运行。将多个建议组合到同一目标时,请务必牢记这一点。