2010-07-25 41 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

相关问题