繁体   English   中英

为什么我不能注入一个bean的多个实例?

[英]Why I can't inject multiple instances of a 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由容器管理。 因此,您不必担心实例。 容器将在需要时创建新的容器,但是它将具有相同的状态(如果为Statefull)。 看来Stock不应该是Enterprise Bean,而应该是DTO。 您不应该在EJB上执行数据操作。 EJB应该在适当的结构(DTO)上执行它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM