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) 注意事項