gpt4 book ai didi

java - 为什么我不能注入(inject)一个 bean 的多个实例?

转载 作者:行者123 更新时间:2023-11-30 04:05:44 25 4
gpt4 key购买 nike

我有两个bean:一个管理单一股票,另一个管理两只股票之间的变动。所以,在 MovStock bean 中我有:

@EJB
private Stock stock1;
@EJB
private Stock stock2;

[...]

public void setStocks(int idStock1, int idStock2) {
stock1.loadStock(idStock1);
stock2.loadStock(idStock2);
}

在我的代码中的某个位置,在另一个 bean 上,我这样做:

@EJB
private MovStock movStock;

[...]

movStock.setStocks(10,20);

但它会导致 stock1 和 stock2 持有相同的股票 (20)。当然我做错了什么,但是使用使用 @PersistenceContext 等的同一 bean 的多个实例的正确方法是什么?

谢谢

最佳答案

Bean 由容器管理。所以你不必担心实例。容器将在需要时创建新容器,但它将具有相同的状态(如果是有状态的)。看起来Stock不应该是Enterprise Bean,而是DTO。您不应该在 EJB 上执行数据操作。 EJB 应该在适当的结构(DTO)上执行它。

关于java - 为什么我不能注入(inject)一个 bean 的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20763084/

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