Cosminexus 機能解説
Dependency Injection(DI)とは,EJBやインターセプタクラスのフィールドやsetterメソッドに,@EJBや@Resourceアノテーションを指定することで,Enterprise Beanやリソースへの参照をEJBコンテナが自動的にセットする機能です。DIを使用すると,Enterprise Beanやリソースへの参照を,JNDIを使用してルックアップする必要がなくなります。
ここでは,@Resourceアノテーションで指定できるリソースのタイプ,およびDIに関する注意事項について説明します。
@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またはルックアップで取得できる値を設定できません。
表5-10 name属性に対応するejb-jar.xmlのタグ
アノテーションと属性 | name属性に対応するejb-jar.xmlのタグ |
---|---|
@EJB name() | <ejb-ref>タグ下の<ejb-ref-name>タグ |
<ejb-local-ref>タグ下の<ejb-ref-name>タグ | |
@Resource name() | <env-entry>タグ下の<env-entry-name>タグ |
<resource-ref>タグ下の<res-ref-name>タグ | |
<resource-env-ref>タグ下の<resource-env-ref-name>タグ |
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.