gpt4 book ai didi

jakarta-ee - $Proxy$_$$_Weld$EnterpriseProxy$ 代理子类是如何实现的?

转载 作者:行者123 更新时间:2023-12-02 07:23:16 24 4
gpt4 key购买 nike

在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com