はい、たとえばAn Introduction to the Java EE 5 Platform記事 (太字は私のもの) で説明されているように、インジェクションはインターセプターで発生する必要があります。
依存性注入によるリソースへのより簡単なアクセス
依存性注入は、オブジェクトの依存性がそのオブジェクトの外部のエンティティによって自動的に提供されるパターンです。オブジェクトは、これらのリソースを明示的に要求する必要はありません (たとえば、ネーム サービスでそれらを検索するなど)。Java EE 5 プラットフォームでは、コンポーネントが必要とするすべてのリソースに依存性注入を適用して、リソースの作成と検索をアプリケーション コードから効果的に隠すことができます。依存性注入は、Java EE 5 テクノロジ全体 (EJB ソフトウェア コンテナー、Web コンテナー、およびクライアント) に適用できます。
リソースの注入を要求するために、コンポーネントは@Resource
アノテーションを使用します。一部の特殊なリソースの場合は、@EJB
および
@WebServiceRef
アノテーションを使用します。以下は、注入できる多くのリソースの一部です。
SessionContext
物体
DataSources
物体
UserTransaction
EntityManager
インターフェース
TimerService
インターフェース
- その他のエンタープライズ Bean
- ウェブサービス
- メッセージ キューとトピック
- リソース アダプタの接続ファクトリ
- 環境エントリ (文字列、整数など)
リソース注入は、任意のコンポーネント クラス、つまりライフサイクルがコンテナーによって管理される任意のクラスから要求できます。EJB ソフトウェア コンテナでは、インジェクションをサポートするコンポーネントは次のとおりです。
- EJB テクノロジー コンポーネント
- インターセプター
- Java API for XML Web Services (JAX-WS) および Java API for XML-based RPC (JAX-RPC) のメッセージ ハンドラー
Web コンテナーでは、インジェクションをサポートするコンポーネントは次のとおりです。
- サーブレット、サーブレット フィルター、イベント リスナー
- タグ ハンドラー、タグ ライブラリ イベント リスナー
- 管理された Bean
クライアント コンテナーでは、メイン
クラスとlogin
コールバック ハンドラー コンポーネントがインジェクションをサポートします。
JBoss EJB 3.0 チュートリアルのEJB インターセプターセクションも参照してください。
Bean クラスと同様に、インターセプターは依存性注入のターゲットになる可能性があります。これがどのように機能するかの形式は同じであり、インジェクションはインターセプターがバインドされている Bean と同じ ENC で機能します。
...
インターセプターは、バインドされている Bean と同じライフサイクルに従うことに注意してください。インターセプターは Bean インスタンスの作成と同時に作成され、依存性注入は最初のビジネス メソッドが呼び出される前に発生します。
資力