在EJB 3.1中,我可以创建一个无接口会话Bean。当将其注入其他类时,他们会收到一个与我的pojo类型相同的对象,但实际上,他们得到的是一个存根,它通过一连串的类与我的pojo进行交互。这个技巧是如何实现的?我可以理解存根是否具有与我的pojo相同的接口类型,但是容器如何创建相同类型的对象?反射?织位?非常感谢!
容器生成一个代理类,该代理类是您的无接口EJB类的子类,然后,它重写所有方法以进行其常规代理(设置,拆卸和调用实际的bean实例),而不是在您的实例中调用方法。 。由于java.lang.reflect.Proxy不支持扩展类,因此容器必须使用另一种方法来生成类,可能使用诸如ASM,BCEL,Javassist等字节码库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句