@EJB
アノテーションを使用してステートレス セッション Bean を注入するよりも JNDI を使用する方がよい状況はありますか?
Sun Application Server 9.0_01 で JSF 1.2 を使用しています。
私たちのチームは、マネージド Bean で SLSB を使用する場合にどちらのアプローチが優れているかを議論しています。
次の質問を読みましたが、ルックアップが優先される状況があるかどうか疑問に思っていました。
@EJB
アノテーションを使用してステートレス セッション Bean を注入するよりも JNDI を使用する方がよい状況はありますか?
Sun Application Server 9.0_01 で JSF 1.2 を使用しています。
私たちのチームは、マネージド Bean で SLSB を使用する場合にどちらのアプローチが優れているかを議論しています。
次の質問を読みましたが、ルックアップが優先される状況があるかどうか疑問に思っていました。
@EJB アノテーションを使用してステートレス セッション Bean を注入するよりも JNDI を使用する方がよい状況はありますか?
より良い状況はありませんが、必要な状況では:
検索する名前が一定で、インジェクションが可能な場合は、@EJB
注釈を優先します。
SFSB の場合は JNDI ルックアップが重要かもしれません (常に同じインスタンスにアクセスするようにしてください)。
私は間違いなく一緒に行き@EJB
ます。読みやすく (エラーが発生しやすいコードが少ない)、保守しやすく (Bean の JNDI 名前空間の場所を気にする必要がない)、テストしやすい (単体テストを実行するときに切り捨てる必要がある面倒なルックアップ コードがない)。
パフォーマンスの理由について話すとき - 100% 確信があるわけではありませんが、アノテーションを使用するときにアプリケーション サーバーが実際に舞台裏で JNDI ルックアップを行っていても驚かないでしょう。
@EJB アノテーションを使用してステートレス セッション Bean を注入するよりも JNDI を使用する方がよい状況はありますか?
SLSB の JNDI ルックアップを必要とする具体的な状況については、この質問と相対回答: JPA 継承と EJB ポリモーフィズムで説明されています。基本的に、SLSBのクラス名は実行時に決定されます。