CDI @ApplicationScoped vs @RequestScoped和工厂模式

时间:2016-05-09 14:04:28

标签: cdi factory

最好是创建一个应用程序作用域工厂,还是在使用工厂模式创建对象时应该使用作用域?

应用程序作用域bean只创建一次但使用内存空间。为每个调用创建了请求范围的bean,但仅在生命周期使用内存空间。请求scoped bean可以多次创建。

@Named
@ApplicationScoped
public class SomeObjectFactory {
   public SomeObject createObject() {
      // do some stuff
   }
}

有没有最佳做法?

1 个答案:

答案 0 :(得分:0)

我认为你不会为这个问题找到一个非常确定的答案。原因是它真的取决于你的应用程序:

  • bean是否只在请求的生命周期内存在?如果是,请使用@RequestScoped

  • 应该在应用程序的生命周期内存在bean,并且应该在所有请求之间共享bean的状态吗?如果是,请使用@ApplicationScoped