2011-12-05 32 views
2

所以我想在我的應用程序中使用AOP進行日誌記錄和一些錯誤處理。 大多數人推薦使用aspectj,所以我的問題是爲什麼aspectj要求我安裝一個eclipse插件才能使用它? 沒有aspectj在運行時只是使用反射來修改類?Java - 爲什麼aspectj需要安裝插件?

我們也在使用構建服務器,是否需要在構建服務器上安裝任何東西以便使用aspectj來運行項目?

回答

4

它不會,除非您特別想讓Eclipse具有方面感知能力,並且在其內部構建過程中包含AspectJ功能。 (國際海事組織對IDE的支持非常棒,並且使得AOP更容易處理,單獨的排水溝標記值得入場。)

AspectJ修改字節碼;你不能通過純粹的反射來做它,

你的構建服務器需要適當的庫。如果您正在進行編譯時編織,那麼需要將其添加到構建腳本中。

2

Aspect-J使用代理通過所謂的加載時織造來修改類。這是必需的,因爲java-proxies只能用於接口。代理用額外的(字節)代碼增加類。

編輯:插件通常會提供額外的功能來定義和審查點切口連接點

+1

這並沒有回答爲什麼需要Eclipse插件的問題。 –

+0

@MatthewFarwell謝謝,補充 – stacker

1

不,您不需要任何插件來編譯/運行使用AOP編寫的代碼。

確實需要在編譯/運行應用程序時添加類路徑信息。

例如,你可以看看here。它使用ant添加aspectj jars來運行示例。當然,它不需要插件來運行AspectJ代碼。

關於插件&蝕:這是給予日食主意,瞭解AspectJ的代碼,而不是混淆爲無效的Java代碼。

0

如果你有一個Maven項目,你只需要放置一些依賴來處理Aspect。 我正在使用Netbeans並使用AspectJ,它完美地工作。沒有插件來安裝。

請參閱:http://mojo.codehaus.org/aspectj-maven-plugin/瞭解一些信息。

相關問題