gpt4 book ai didi

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

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

在Java EE 7应用程序中,假设我有一个会话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 specthis 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