ぼやっと本読んでたら何やら理解できて来た気がするので……
内容が正しいかはまったくもって保証しません。
■ CDI(Context and Dependency Injection)
@Named(value = "injectSample") public class InjectSample { @Inject InjectedSample injected; public void sample() { injected.execute(); } }
通常であればinjectedはどこかでインスタンス化する
必要がある(new InjectedSample();)が、CDIを利用することで
これをしなくてよくなる。
これによって、
InjectSampleとInjectedSampleの間の依存関係を疎にすることができる。
(その代わりInjectedSampleは引数を受け付けないコンストラクタによって
インスタンス化される)
■ コンテキスト
上記の内容を理解するにはコンテキスト(Context)にるいて理解する必要がある。CDIにおけるコンテキストとは
スコープアノテーションによって指定されたオブジェクトの存続設定
■スコープアノテーション
CDIビーンに対して設定されるオブジェクトの存続期間- @RequestScoped
- @SessionScoped
- @ApplicationScoped
- @ConversationScoped
- @Dependent
■CDIビーン
管理ビーンの一種。CDIサービスによって管理される。
管理ビーンはコンテナ内で管理されており、
スコープに応じて適切なオブジェクトが自動で選択され、
変数に代入される。
0 件のコメント:
コメントを投稿