@Singleton bean应该返回一个内部List<>会员?

时间:2015-08-27 07:57:19

标签: java java-ee-6

这可能是一个非常简单的问题,但这对我来说并不完全清楚。

我有一个bean如下:

@Singleton
@Startup
@Lock(READ)
public class SomeDataBean {
  List<Foo> foos;

  @PostConstruct
  public void init() {
    // Build foos;
  }

  public List<Foo> getFoos() {
    return foos;
  }

  @Lock(WRITE)
  public void modifyFoos() {
    // This could be potentially called too
  }
}

随后,这个bean被注入(使用CDI - 环境是Wildfly 8.2),进入各种其他bean(请求/会话/视图等)。现在,他们都访问了Foo的这个列表。我的问题是,当可能modifyFoos()可能被另一个bean调用时,按原样返回列表是否安全。或者这是否会永远不会发生并且由容器保证?

我已经阅读了有关容器管理交易等的一些文档,但它并不完全清楚它在这种情况下是如何工作的。例如,用并发容器替换list是否更好?

0 个答案:

没有答案