2010-07-25 60 views
2

我有提供程序應該注入javax.mail.Session(提供程序在tomcat的env。context中查找它)爲單例。當我在代碼中某處使用現場注入時存在問題:有沒有辦法給guice注入最終課程?

java.lang.IllegalArgumentException: Cannot subclass final class class javax.mail.Session 

有沒有辦法繞過這個?我只找到指向Spring AOP/Proxies的線索。

感謝& &問候

回答

2

看這個http://code.google.com/p/google-guice/wiki/AOP。它似乎有一定的侷限性:

限制

在幕後,方法攔截是通過產生在運行時字節碼 實施。 Guice通過重寫方法動態地創建一個應用攔截器的子類。如果您在 不支持字節碼生成(如Android)的平臺上,則應該使用沒有AOP支持的 Guice。

這種方法對於哪些類和方法的限制可以 截獲:

類必須是公共或包專用。類必須是非最終 方法必須是公開的,包私人或受保護的方法必須是 非最終實例必須由吉斯由@Inject創建-annotated 或無參數的構造

+0

謝謝,我會然後使用包裝。 – zeratul021 2010-07-25 20:31:51

相關問題