推荐答案
-- -------------------- ---- ------- -------- -------------------- ---- ------------ ------- ----------- ------------------- - ----- -------------- - ----------------- ---------------- - -------- --------- ------ - ------------------- ------- --------- ----------------- ------ -------------------------- ------ -- - -------- ------------------- ---- ------------ ------- ----------- ------------------- - ----- -------------- - ----------------- ---------------- - -------- --------- ------ - ----- ------ - -------------------------- ------ ------------------ ------- -------- ----------------- ------ ------- -- - -------- ---------------------------- ---- ------------ ------- ----------- ------------------- - ----- -------------- - ----------------- ---------------- - -------- --------- ------ - ----- ------ - -------------------------- ------ ------------------ --------- ------- -------------- -------- ------------ ------ ------- -- - -------- --------------------------- ---- ------------ ------- ----------- ------------------- - ----- -------------- - ----------------- ---------------- - -------- --------- ------ - --- - ------ -------------------------- ------ - ----- ------- - ------------------ -------- ------- -------------- ----- -- ------ ----------- ----- ------ - -- - -------- -------------------- ---- ------------ ------- ----------- ------------------- - ----- -------------- - ----------------- ---------------- - -------- --------- ------ - ------------------- ------- ------ ----------------- ----- ------ - -------------------------- ------ ------------------- ------- ----- ----------------- ------ ------- -- - ----- ------- - ------------- ------------ --------------------- -------------------- ------------- -------- - ---------------------- --------- ------ --------- - - ----- ------- - --- ---------- -----------------
本题详细解读
前置通知 (Before Advice)
前置通知在目标方法执行之前执行。通过装饰器 BeforeAdvice
,我们可以在方法执行前插入逻辑。在 BeforeAdvice
中,我们重写了目标方法,并在调用原始方法之前打印了一条日志。
后置通知 (After Advice)
后置通知在目标方法执行之后执行。通过装饰器 AfterAdvice
,我们可以在方法执行后插入逻辑。在 AfterAdvice
中,我们重写了目标方法,并在调用原始方法之后打印了一条日志。
返回通知 (After Returning Advice)
返回通知在目标方法成功返回后执行。通过装饰器 AfterReturningAdvice
,我们可以在方法返回结果后插入逻辑。在 AfterReturningAdvice
中,我们重写了目标方法,并在方法返回结果后打印了一条日志。
异常通知 (After Throwing Advice)
异常通知在目标方法抛出异常时执行。通过装饰器 AfterThrowingAdvice
,我们可以在方法抛出异常时插入逻辑。在 AfterThrowingAdvice
中,我们重写了目标方法,并在捕获到异常时打印了一条日志。
环绕通知 (Around Advice)
环绕通知在目标方法执行前后都执行。通过装饰器 AroundAdvice
,我们可以在方法执行前后插入逻辑。在 AroundAdvice
中,我们重写了目标方法,并在方法执行前后分别打印了一条日志。
使用示例
在 Example
类中,我们使用了所有的装饰器来装饰 method
方法。当调用 method
方法时,所有的通知都会按照定义的顺序执行。