2016-05-09 24 views
-1

アプリケーションスコープのファクトリを作成する方が良いですか、ファクトリパターンを使用してオブジェクトを作成するときにスコープを要求する必要がありますか?CDI @ApplicationScopedと@RequestScopedとfactoryパターン

アプリケーションスコープBeanは一度作成されますが、メモリスペースを使用します。要求スコープBeanは呼び出しごとに作成されますが、メモリ空間は使用時にのみ使用されます。リクエストスコープのBeanは複数回作成される可能性があります。

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

ベストプラクティスはありますか?

答えて

0

私はこの質問に対して非常に明確な答えを見つけることはできないと思います。その理由は、実際にアプリケーションに依存しているからです。

  • Beanはリクエストの存続期間中にのみ存在する必要がありますか?その場合は、@RequestScopedを使用してください。

  • Beanはアプリケーションの存続期間中に存在し、Beanの状態はすべての要求間で共有されるべきですか?その場合は、@ApplicationScopedを使用してください。

+0

ありがとうございました。工場の1つのインスタンスを共有する必要はありません。アプリケーションスコープのBeanをたくさん作成するのに問題はありますか? –

+1

@LarsMichaelis同じクラスに多くのプロデューサメソッドを持つことができるので、クラスの量が減ります。しかし、プロデューサメソッドを含むクラスのスコープより重要なのは、生成されるBeanのスコープです。 –

関連する問題