- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Java EE 7 应用程序中,假设我有一个 session bean 类“@Stateless public class MyEJB
”。在 Glassfish 4 下调试时,我可以看到创建了一个名为 MyEJB$Proxy$_$$_Weld$EnterpriseProxy$
的代理子类(以便为 EJB 提供 Java EE 容器服务)。
我试图弄清楚这些代理子类是如何实现的。是否存在代理实现调用的标准 Java EE SPI,例如用于划分事务?或者这仅通过容器特定的内部 API 完成?
(我提出这个问题的动机是为了实现一个可移植的 CDI 扩展,以在 Java EE 上下文中实现真正的 POJO 和 OO 编程。)
最佳答案
代理实现是由ProxyFactory
类创建的。你可以看一下源码in the Weld Github repo .
代理类基本上如下所示:
public class Test_$$Proxy extends Test
{
public void doSomething(int someValue)
{
Testinstance = lookupBean();
instance.doSomething(someValue);
}
private Test lookupBean()
{
//get the correct instance from the BeanManager and return it
}
}
还有很多额外的魔法。或许你可以从the CDI spec获取一些详细信息。和来自 this article .
关于jakarta-ee - $Proxy$_$$_Weld$EnterpriseProxy$ 代理子类是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22465410/
在 Java EE 7 应用程序中,假设我有一个 session bean 类“@Stateless public class MyEJB”。在 Glassfish 4 下调试时,我可以看到创建了一个
在Java EE 7应用程序中,假设我有一个会话bean类“ @Stateless public class MyEJB”。在Glassfish 4下进行调试时,我可以看到创建了名为MyEJB$Pro
我是一名优秀的程序员,十分优秀!