Cosminexus 機能解説

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

5.2.5 DIの使用

Dependency Injection(DI)とは,EJBやインターセプタクラスのフィールドやsetterメソッドに,@EJBや@Resourceアノテーションを指定することで,Enterprise Beanやリソースへの参照をEJBコンテナが自動的にセットする機能です。DIを使用すると,Enterprise Beanやリソースへの参照を,JNDIを使用してルックアップする必要がなくなります。

ここでは,@Resourceアノテーションで指定できるリソースのタイプ,およびDIに関する注意事項について説明します。

<この項の構成>
(1) @Resourceアノテーションで指定できるリソースのタイプ
(2) 注意事項

(1) @Resourceアノテーションで指定できるリソースのタイプ

@Resourceアノテーションを使用して,リファレンスを定義できます。@Resourceアノテーションで指定できるリソースのタイプを次の表に示します。

表5-9 @Resourceアノテーションで指定できるリソースのタイプ

リソースのタイプ 指定可否
javax.sql.DataSource※1
javax.mail.Session
java.net.URL ×
javax.jms.ConnectionFactory
javax.jms.QueueConnectionFactory※2
javax.jms.TopicConnectionFactory
javax.jms.Queue※2
javax.jms.Topic
javax.resource.cci.ConnectionFactory※3
javax.resource.cci.InteractionSpec ×
javax.transaction.UserTransaction ※4
org.omg.CORBA_ 2_3.ORB ※5
javax.xml.rpc.Service ×
javax.xml.ws.Service ×
javax.jws.WebService ×
javax.ejb.EJBContext ※6
javax.ejb.SessionContext ※6
javax.ejb.TimerService ※6※7
JavaBeansリソース独自
java.lang.String ※8
java.lang.Character ※8
java.lang.Integer ※8
java.lang.Boolean ※8
java.lang.Double ※8
java.lang.Byte ※8
java.lang.Short ※8
java.lang.Long ※8
java.lang.Float ※8

(凡例) ○:指定できる ×:指定できない

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

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

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

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

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

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

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

注※8 <env-entry-value>タグに,DIまたはルックアップで取得できる値を設定できません。


(2) 注意事項