2011-11-11 42 views
4

是否可以爲耳朵內的所有EJB配置默認攔截器?Java EE EJB攔截器

可以在ejb-jar.xml中爲模塊中的EJB提及缺省攔截器。如果應用程序中有多個模塊,則所有模塊都需要具有此配置。

我正在尋找在應用程序全局上強制執行某些攔截器。因此,如果它可以在應用程序級別或服務器級別進行設置,這將有所幫助,從而不會由各個模塊的開發人員自行決定是否將其包含在內。

+0

哪個版本的EJB? – skaffman

+0

脫離主題評論,會過濾/攔截太多嗎? – r0ast3d

+0

EJB版本是3.1,我正在使用JEE 6攔截器。缺點是必須在所有ejb模塊的每個ejb-jar.xml中配置默認​​攔截器。目的是爲應用程序公開的所有服務設置特定的審計/日誌記錄攔截器。我在Spring中發現了類似的東西,使用AOP可以在服務級別配置攔截器。我試圖找出JEE 6是否支持這些功能 – lives

回答

2

你無法避免必須在每個ejb-jar文件中指定攔截器,因此不可能在EAR級別上定義它。 Interceptor類需要與使用它的所有bean打包在同一個ejb-jar文件中。

您仍然可以將攔截器的代碼抽取到所有ejb模塊使用的公用庫中,但仍然需要在每個ejb-jar文件中定義並激活一個調用公共實現的單獨攔截器。