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

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

2.2.3 @Resource

<この項の構成>
(1) 説明
(2) 属性

(1) 説明

リソースへの参照を宣言します。クラス,メソッド,およびフィールドに設定できます。メソッドやフィールドに設定した場合,Dependency Injectionの対象となります。ただし,メソッドはsetメソッドである必要があります。

(2) 属性

@Resourceの属性の一覧を次の表に示します。

属性名 機能
name リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。
type リソースのJavaタイプを設定します。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。
authenticationType リソースに使用する認証タイプを設定します。
shareable リソースを共用するかどうかを設定します。
mappedName 参照先リソースを特定するためにリソース表示名やキュー名を設定します。
description リソースの説明を設定します。

各属性の詳細を次に示します。

(a) name属性

String

説明
リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。
なお,リソースの別名を指定することもできます。J2EEリソースの別名の設定については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.4.6 J2EEリソースの別名の設定」を参照してください。

デフォルト値
  • メソッドに設定した場合
    アノテーションを設定したクラス名/setメソッドのプロパティ
  • フィールドに設定した場合
    アノテーションを設定したクラス名/フィールド名
(b) type属性

Class

説明
リソースのJavaタイプを設定します。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。

デフォルト値
  • メソッド設定した場合
    メソッドの引数の型
  • フィールドに設定した場合
    フィールドの型

type属性とDDの対応
type属性はJ2EE仕様と異なり,設定値(Java Type)によって対応するDDが変わります。Java Typeによって異なるDDの対応を次の表に示します。

表2-26 type属性によるDDの対応表

type属性 J2EE仕様で対応するDDのタグ Cosminexus仕様で対応するDDのタグ※1
java.lang.String※2 env-entry env-entry
java.lang.Character※2 env-entry env-entry
java.lang.Integer※2 env-entry env-entry
java.lang.Boolean※2 env-entry env-entry
java.lang.Double※2 env-entry env-entry
java.lang.Byte※2 env-entry env-entry
java.lang.Short※2 env-entry env-entry
java.lang.Long※2 env-entry env-entry
java.lang.Float※2 env-entry env-entry
javax.xml.rpc.Service service-ref 例外※3
javax.xml.ws.Service service-ref 例外※3
javax.jws.WebService service-ref 例外※3
javax.sql.DataSource resource-ref resource-ref
javax.jms.ConnectionFactory resource-ref resource-ref
javax.jms.QueueConnectionFactory resource-ref resource-ref
javax.jms.TopicConnectionFactory resource-ref resource-ref
javax.mail.Session resource-ref resource-ref
java.net.URL resource-ref 例外※3
javax.resource.cci.ConnectionFactory resource-ref resource-ref
org.omg.CORBA_2_3.ORB resource-ref resource-ref
リソースアダプタによって定義されるほかのコネクションファクトリ resource-ref resource-env-ref
javax.jms.Queue message-destination-ref resource-env-ref
javax.jms.Topic message-destination-ref resource-env-ref
javax.resource.cci.InteractionSpec resource-env-ref 例外※3
javax.transaction.UserTransaction resource-env-ref resource-env-ref
上記以外のすべてのタイプ resource-env-ref resource-env-ref

注※1
mappedName要素に「!#」が含まれていた場合は,Java Typeとは関係なく,<resource-env-ref>に対応づけます。

注※2
標準DDから値を取得できないため,属性ファイルには表示しますが,DIは行いません。

注※3
インポート時に例外となります。

(c) authenticationType属性

AuthenticationType

説明
リソースに使用する認証タイプを設定します。

デフォルト値
CONTAINER
(d) shareable属性

boolean

説明
リソースを共用するかどうかを設定します。

デフォルト値
true
(e) mappedName属性

String

説明
参照先リソースを特定するためにリソース表示名やキュー名を設定します。
リソース表示名に半角英数字およびアンダースコア(_)以外の文字を含む場合,半角英数字およびアンダースコア(_)以外の文字をアンダースコア(_)に置き換えて設定してください。

デフォルト値
""

mappedName属性の設定条件
mappedName属性はtype属性によって設定条件が変わります。@ResourceでのmappedName属性の設定条件を次の表に示します。

表2-27 @ResourceのmappedName()の設定条件

設定条件(Java Type,リソースなど) 使用可否※1
java.lang.String ×
java.lang.Character ×
java.lang.Integer ×
java.lang.Boolean ×
java.lang.Double ×
java.lang.Byte ×
java.lang.Short ×
java.lang.Long ×
java.lang.Float ×
javax.xml.rpc.Service ×
javax.sql.DataSource
javax.jms.ConnectionFactory
javax.jms.QueueConnectionFactory
javax.jms.TopicConnectionFactory
javax.mail.Session
java.net.URL ×
javax.resource.cci.ConnectionFactory
org.omg.CORBA_2_3.ORB ×
javax.jms.Queue※2
javax.jms.Topic
javax.resource.cci.InteractionSpec ×
javax.transaction.UserTransaction ×
javax.ejb.EjbContext ×
javax.ejb.SessionContext ×
javax.ejb.TimerService ×
JavaBeansリソース

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

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

注※2
uCosminexus TP1/Message Queue - AccessまたはCosminexus Reliable Messagingを使用時にjavax.jms.Queueを使用する場合,リソースアダプタの表示名とキューの表示名の区切り文字には,「#」を使用してください。

(f) description属性

String

説明
リソースの説明を設定します。

デフォルト値
""