的Tomcat應用程序的方法,我要解釋一個問題,就是很辛苦,所以讓我們開始:攔截用AOP
語境:我有一個Tomcat服務器上運行的應用程序,可以把它稱爲「管理員」。管理員具有導入/導出功能。我們自己的應用程序是對此的擴展,當「管理應用程序」使用導入/導出功能時,我們需要收集一些信息。
問題:包含類ImportController的第三方jar位於此處:~/someFolder/admin/WEB-INF/lib/admin.jar
。我們的目標是收集舊的項目ID和新的項目ID,以便我們的擴展可以將我們的類與正確的項目聯繫起來。因爲我知道方法簽名我雖然我可以使用AOP來這樣做。
想法:我帶來的想法是將類似idHiJacker.jar
的東西放入~/someFolder/admin/WEB-INF/lib/
並啓用加載時織入。該建議只需將信息放入xml文件中,以便我們的擴展程序能夠在項目導入後將鏈接置回時讀取它。
另外我必須說我是一個純粹的新手與AOP和網絡的東西。但我不希望導入一個怪物,只是用AOP做這個小操作。在關於AspectJ和AspectWerkz
瞬間即時閱讀問:
- 1)我是在正確的方向?你有沒有看到任何會使這個想法不起作用的東西?
- 2)如果這是可能的,那麼以非常乾淨的方式做到這一點最好?
- 3)我應該用AspectJ來做嗎? AspectWerkz的?或者是其他東西?
- 4)我是不是這麼做了?有沒有更簡單的方法來做這個操作?
編輯:另外,如果你有很好的教程與答案聯繫起來,這將是真棒
感謝您的時間和回答
謝謝你的回答,我的問題是,這是有點難以注入AOP。我剛剛注意到,「管理應用程序服務器」是以一個複雜的bash腳本開始的。所以首先我要弄清楚如何啓用加載時編織 – drgn
@drgn ltw不是很困難。最大的挑戰將是如何修改腳本以添加代理和附加jar。另一種方法是使用編譯時織入來對現有類進行檢測,並用裝有儀器的jar替換jar部署的jar。不知道如果jar被簽名,那是如何工作的。 –
將一個簡單的aop.xml放入WEB-INF之後,我的jar只包含一個方面(從支持aspectJ的eclipse jar中導出)並添加了javaagent(之前的評論),這是行不通的。問題是我沒有錯誤消息,我把冗長的選項放在aop.xml中,但我沒有來自編織器的消息。我一定做錯了什麼。 – drgn