2011-12-23 17 views
0

私はEJB 3でデータ処理のための小さなフレームワークを構築しています。
データソースから抽象化したEntity Access Objectティアがあります。今私はクエリのエンティティに私に右のビーンを与える工場のいくつかの種類が必要です。EJB3。どのようにJNDIルックアップが動作するか

JNDIローカルBeanインタフェースを介して別のローカルBeanへのパラメータとして渡しても安全ですか?このローカルインタフェースからの各メソッド呼び出しは同じBeanに宛てられますか、または各呼び出しは@EJB機会のように異なるステートレスBeanに渡されますか?

答えて

1

JNDIを使用すると、同じEJBインスタンスが提供されることは保証されないため、@EJBまたは@Injectを使用する依存性注入の場合と同じです。 @EJBとJNDIルックアップの唯一の違いは、SFSBです。この場合、コンテナはJNDIルックアップを使用するたびに新しいSFSBインスタンスを提供する必要があります。

私の意見では、EJB 3.xと依存性注入時代には、@EJB/@Inject注釈を理解することがより簡単です。オブジェクト参照を渡す必要はなく、@EJBを使用して各EJBの依存関係(EJB共同作業者)を定義するだけです。

+0

うん。 DIは非常に便利ですが、私はそれを使ってランタイムサービスファサードを実装する方法を知らないです。何か方法はありますか? –

+0

したがって、指定されたEJBにアクセスするために実行時に提供される値(つまり、メソッドパラメータ)を使用していますか? –

+0

はい。私は同じインタフェースを持つ2つの異なるステートレスBeanを持っています。ユーザーの操作に応じて、リクエストの処理に必要なものを1つ選択する必要があります。 –

関連する問題