你的問題被標記爲Spring-Annotations,所以你顯然使用Spring。有幾個步驟,你想要做什麼用Spring:
Enable AspectJ/AOP-Support在您的配置:
<aop:aspectj-autoproxy/>
寫一個看點(CF Spring AOP vs AspectJ)使用@After
和@annotation
pointcut:
@Aspect
public class TaskDoer {
@After("@annotation(doTaskAnnotation)")
// or @AfterReturning or @AfterThrowing
public void doSomething(DoTaskAtMethodReturn doTaskAnnotation) throws Throwable {
// do what you want to do
// if you want access to the source, then add a
// parameter ProceedingJoinPoint as the first parameter
}
}
請請注意以下限制:
- 除非啓用AspectJ編譯時編織或使用javaagent參數,否則必須通過Spring創建包含foo的對象,即必須從應用程序上下文中檢索它。
- 沒有附加的依賴關係,只能對通過接口聲明的方法應用方面,即foo()必須是接口的一部分。如果您將cglib用作依賴項,那麼您還可以將方面應用於未通過接口公開的方法。
您是否正在使用像Spring或Guice這樣的依賴注入框架?它們提供簡單的AOP功能。 – 2013-02-11 21:18:33
@ CodyA.Ray感謝您的回覆。是的,我正在使用Spring。我不知道AOP,所以我會用它。 – Sumit 2013-02-11 21:55:47