在EJB 3.1中,容器代理在技术上如何有效地欺骗我的无接口对象?

用户名

在EJB 3.1中,我可以创建一个无接口会话Bean。当将其注入其他类时,他们会收到一个与我的pojo类型相同的对象,但实际上,他们得到的是一个存根,它通过一连串的类与我的pojo进行交互。这个技巧是如何实现的?我可以理解存根是否具有与我的pojo相同的接口类型,但是容器如何创建相同类型的对象?反射?织位?非常感谢!

布雷特·凯尔(Brett Kail)

容器生成一个代理类,该代理类是您的无接口EJB类的子类,然后,它重写所有方法以进行其常规代理(设置,拆卸和调用实际的bean实例),而不是在您的实例中调用方法。 。由于java.lang.reflect.Proxy不支持扩展类,因此容器必须使用另一种方法来生成类,可能使用诸如ASM,BCEL,Javassist等字节码库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章