我正在首次試驗Spring AOP並陷入XML配置中。我試圖獲取基於AOP的「日誌記錄」的模擬版本,並使用MethodInterceptor
來包裝特定的方法調用,並在這些方法調用之前和之後執行一些簡單的System.out.println
語句。簡單的東西,對吧?Spring AOP配置(XML)
所以我的項目有很多課,其中兩個是Fizz
和Buzz
。 Fizz有一個名爲foo()
的方法,Buzz有一個名爲wapap()
的方法。每個這些方法在運行時調用的時候,我希望我的LoggingInterceptor
身邊人執行它的invoke()方法:
public class LoggingInterceptor implements MethodInterceptor
{
public Object invoke(MethodInvocation methodInvocation)
{
try
{
System.out.println("About to call a special method.");
Object result = methodInvocation.proceed();
return result;
}
finally
{
System.out.println("Finished executing the special method.");
}
}
}
所以我理解的建議(我攔截implement執行)的概念,切入點(這將有方法圍繞他們執行的建議)和切入點顧問(建議和切入點之間的綁定)。
我只是努力在一個簡單的XML配置完全綁定它。
這是我到目前爲止,但我知道它缺少切入點和切入點顧問定義,可能更多。
<beans default-autowire="no" >
<bean name="loggingInterceptor" class="org.me.myproject.aop.LoggingInterceptor"/>
</beans>
缺少什麼我在這裏,使這個特定的嘶嘶聲:: foo的()和巴茲:: wapap()調用?
任何在正確的方向微調都非常感謝!
感謝Tomasz,但它看起來像那些將調用任何Fizz或Buzz方法的日誌攔截器建議。我需要它來指定foo()和wapap()。我也需要添加一個xmlns的東西來處理新的aop標籤? – IAmYourFaja
我編輯了我的答案,看看。 –
所有這些記錄在哪裏?我一直在尋找一些Spring AOP框架的XML模式指南,並找不到任何!另外,如果我有一個ExceptionInterceptor(實現ThrowsAdvice)來處理異常,那該怎麼辦?我如何修改這些切入點字符串以指定任何異常? – IAmYourFaja