gpt4 book ai didi

java - 将有状态bean注入(inject)无状态bean

转载 作者:太空宇宙 更新时间:2023-11-04 13:21:33 29 4
gpt4 key购买 nike

我有read @Stateful bean (SFSB) 永远不应该注入(inject)到 @Stateless bean (SLSB) 中。但是实现以下目标的正确方法是什么?

@Stateless
public class FirstEJB
{
@EJB
private SecondEJB second;

public void businessMethod()
{
second.businessMethod1();
second.businessMethod2();
}
}

second.businessMethod1()second.businessMethod2() 之间应该保留一些状态,因此 SecondEJB 不能是无状态的。也没有一种简单的方法可以将 businessMethod1()businessMethod2() 方法合并为一个方法,因为 SecondEJB 可以有 2 个以上的业务方法,并且可以以不同的组合来调用它们。

实际上,我尝试使 SecondEJB 有状态,它似乎有效,但会导致内存泄漏。没有用 @Remove 注释标记的 SecondEJB 方法,但我尝试过 @StatefulTimeout 但没有成功:创建了很多 SecondEJB 实例但未删除。有人能解释一下为什么会泄漏吗?

最佳答案

只是不要使用注入(inject)。您可以在调用 buisnessMethod 时使用 bean 的 JNDI 查找,并且 SecondEJB 实例将是在每个方法调用上实例化的方法范围变量。

关于java - 将有状态bean注入(inject)无状态bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33008895/

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