私は JavaEE 6 チュートリアルを読んでいましたが、SessionBean と CDI のセクションを読んでいるときに、いくつか疑問に思いました。
1) 私が理解したところでは、@EJB
アノテーションは SessionBean を注入し、結果として Dependency Inject パターンが使用されます。このパターンは、誰がどのオブジェクトを構築するかという責任を逆転させることを目的としていることを理解しています。したがって、特定のクラスが独自の依存関係を作成する代わりに、コンストラクターでそれらを受け取ります。@EJB
しかし、注釈は依存関係を注入しないという問題をどのように軽減しますか? @Inject
注釈も同様です。
2)日付をいくつかの形式(yyyy-MM-dd、dd-MM-yyyyなど)にフォーマットするこのユーティリティクラス(静的メソッドのみを含む)があります。これらのメソッドにはステートレス セッション Bean を使用する方が良いですか、それともユーティリティ クラスを保持する必要がありますか? @Inject
これにEJBを使用する場合、それを使用する場合とアノテーションを使用してBeanを使用する場合の違いは何ですか?
3) 依存性注入を使用する場合、Service Locator または Factory パターンを使用することは理にかなっていますか? (Service Locator がアンチパターンとして文書化されているのを見たことがありますが)。