我有以下要求:在每個方法之前,我需要執行一些設置,並且在每種方法之後,我需要執行一些清理。例如,在執行每個方法後,我需要在SQL Server中轉儲日誌。創建自定義註釋,它將在Java中的每種方法之前和之後運行
如何爲這種類型的重複性任務創建自定義註釋?
請注意,由於某些設計考慮,我無法在我的應用程序中容納JUnit。
我有以下要求:在每個方法之前,我需要執行一些設置,並且在每種方法之後,我需要執行一些清理。例如,在執行每個方法後,我需要在SQL Server中轉儲日誌。創建自定義註釋,它將在Java中的每種方法之前和之後運行
如何爲這種類型的重複性任務創建自定義註釋?
請注意,由於某些設計考慮,我無法在我的應用程序中容納JUnit。
這聽起來像你正在試圖重新春季方面,看到這一點:
http://docs.spring.io/spring/docs/2.0.x/reference/aop.html
然而,你可能會感覺像在春天添加依賴過大的承諾,你可以考慮只取決於AspectJ的:
http://www.eclipse.org/aspectj/
作爲最後的選擇,你可以讓你的類實現一個接口,然後寫一個「包裝」的實現,接口,T帽子只是包裝另一個實現,並在邏輯之前/之後執行。這是迄今爲止最簡單的方法,我一直這麼做。
最後一個選擇是使用鴨子類型的代理:
http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Proxy.html
不過,我不建議這樣做。
在附註中,我從來沒有聽說過一個不能適應junit或某種測試框架的項目。如果您不打算編寫單元測試,那麼編寫大型應用程序時將面臨指數級艱難的時間。
如果你喜歡我的回答,請接受它。 – msknapp 2014-09-22 04:35:14
你可以發佈一個你提到的自定義包裝器實現的小例子嗎? – 2014-10-07 03:20:02