Cosminexus アプリケーションサーバ V8 リファレンス API編

[目次][索引][前へ][次へ]

2.7 Cosminexusが対応するDependency Injection

Dependency Injection(DI)とは,ターゲットクラスのフィールドやsetメソッドにアノテーション(@EJBや@Resource)を設定することで,EJBやリソースへの参照をEJBコンテナが自動的にセットする機能です。

EJBコンテナ上で動作するクラスの中で,ターゲットクラスとなるクラスを次に示します。

また,Webコンテナ上で動作するクラスの中で,ターゲットクラスとなるクラスを次に示します。

Enterprise Beanのホームインタフェース,またはビジネスインタフェースへの参照をDIする場合は,@EJBを設定します。

@Resourceを設定した場合は,次の表に示すリソースのタイプをDIできます。

表2-29 @ResourceでDIできるリソースのタイプ

リソースのタイプ DIの可否※1
java.lang.String※2 ×
java.lang.Character※2 ×
java.lang.Integer※2 ×
java.lang.Boolean※2 ×
java.lang.Double※2 ×
java.lang.Byte※2 ×
java.lang.Short※2 ×
java.lang.Long※2 ×
java.lang.Float※2 ×
javax.xml.rpc.Service ×
javax.xml.ws.Service ×
javax.jws.WebService ×
javax.sql.DataSource※3
javax.jms.ConnectionFactory
javax.jms.QueueConnectionFactory※4
javax.jms.TopicConnectionFactory
javax.mail.Session
java.net.URL ×
javax.resource.cci.ConnectionFactory※5
org.omg.CORBA_2_3.ORB   ※6
javax.jms.Queue※3,※7
javax.jms.Topic※7
javax.resource.cci.InteractionSpec ×
javax.transaction.UserTransaction   ※8
javax.ejb.EJBContext   ※9
javax.ejb.SessionContext   ※9
javax.ejb.TimerService     ※9,※10
JavaBeansリソース
管理対象オブジェクトの独自のインタフェース

(凡例)
○:使用できます。
×:使用できません。

注※1
管理対象オブジェクトへの対応づけは,Java Typeに関係なく,mappedName要素で対応づけます。リソースアダプタの表示名と管理対象オブジェクト名の区切り文字には,「!#」を使用してください。

注※2
<env-entry-value>に値を設定できないので,DI,lookupで得られる値を設定できません。

注※3
DB Connectorが該当します。

注※4
TP1/Message Queue - Access,Cosminexus RMが該当します。

注※5
uCosminexus TP1 Connectorが該当します。

注※6
ORBのshareable属性はtrueが設定されているものとして動作します。なお,注入されるORBオブジェクトは,ほかのコンポーネントでも使用される共有のインスタンスです。

注※7
Connector 1.5に準拠したリソースアダプタを使用する場合は,JMSで定義する管理対象オブジェクト(javax.jms.Destinationインタフェースまたはサブインタフェース)をリソースアダプタの標準DD(ra.xml)の<connector>-<resourceadapter>-<adminobject>-<adminobject-interface>タグに指定してください。

注※8
CMTで動作するEnterprise Beanまたはインターセプタでは使用できません。

注※9
Webコンテナ上で動作するクラスでは使用できません。

注※10
Stateful SessionBeanや,Stateful SessionBeanに適用されたインターセプタでは使用できません。