リクエストスコープのCDIBeanをステートレスセッションBeanに注入することは可能ですか?
私は関連する質問をし、@Stateless質問への特定のCDI@RequestScopedはそれ自身の投稿に値すると思いました。
EJBメソッド/@RequestScopedと@Statelessの間で状態を渡す
また、JMS @MessageDriven Beanについても同様の質問をしました。基本的に、@Statelessについても同じことを知りたいと思います。
リクエストスコープのCDIBeanをステートレスセッションBeanに注入することは可能ですか?
私は関連する質問をし、@Stateless質問への特定のCDI@RequestScopedはそれ自身の投稿に値すると思いました。
EJBメソッド/@RequestScopedと@Statelessの間で状態を渡す
また、JMS @MessageDriven Beanについても同様の質問をしました。基本的に、@Statelessについても同じことを知りたいと思います。
言及したことを絶対に実行@RequestScopedし、@StatelessセッションBeanとBeanでBeanを使用でき@MessageDrivenます。これはCDI仕様とTCKのコア部分であり、ポータブルであることが保証されています。
@StatelessBeanを使用するBeanのテストはありますが、 BeanがBeanを参照できること@RequestScopedを保証するテストはないことに注意してください。これは単なる見落としであり、Java EE7TCKではすでに修正されています。したがって、MDBの場合に機能しない場合は、それがあなたのせいではない可能性があることに注意してください:)@MessageDriven@RequestScoped
回避策は、MDBを、、などの任意の種類のSessionBeanに委任するだけ@Statelessで@Stateful、@Singletonすべてに@RequestScopedテストがあります。
@Stateless、@Singletonおよびを@MessageDriven介してスコープ参照を挿入することはできますが、または他のスコープ@Injectにすることはできません。 @RequestScopedモデルだけが@Statefulスコープをサポートするのに十分な柔軟性を備えています。@Statefulつまり、 Beanクラス自体@RequestScopedに@SessionScoped、などの注釈を付けることができます。
簡単に言えば@Stateless、@Singletonすでに「スコープ」を修正しています。 @Singletonそれが存在する場合、本質的@ApplicationScopedに、そして@Statelessおそらく、のようないくつかの構成されたスコープになるでしょう@InvocationScoped。Beanのライフサイクルは、@MessageDrivenそれを駆動するコネクタに完全に依存しているため、ユーザー定義のスコープを持つことも許可されていません。