2.2.3 @Resource
(1) 説明
リソースへの参照を宣言します。クラス,メソッド,およびフィールドに設定できます。メソッドやフィールドに設定した場合,Dependency Injectionの対象となります。ただし,メソッドはsetメソッドである必要があります。
(2) 属性
@Resourceの属性の一覧を次の表に示します。
属性名 |
機能 |
---|---|
リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。 |
|
リソースのJavaタイプを設定します。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。 |
|
リソースに使用する認証タイプを設定します。 |
|
リソースを共用するかどうかを設定します。 |
|
参照先リソースを特定するためにリソース表示名やキュー名を設定します。 |
|
参照する別のリソース参照のPortable Global JNDI名,またはリソースの別名を設定します。 |
|
リソースの説明を設定します。 |
各属性の詳細を次に示します。
(a) name属性
- 型
-
String
- 説明
-
リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。
なお,リソースの別名を指定することもできます。J2EEリソースの別名の設定については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.6.6 J2EEリソースの別名の設定」を参照してください。
- デフォルト値
-
-
メソッドに設定した場合
アノテーションを設定したクラス名/setメソッドのプロパティ
-
フィールドに設定した場合
アノテーションを設定したクラス名/フィールド名
-
(b) type属性
- 型
-
Class
- 説明
-
リソースのJavaタイプを設定します。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。
- デフォルト値
-
-
メソッド設定した場合
メソッドの引数の型
-
フィールドに設定した場合
フィールドの型
-
- type属性とDDの対応
-
type属性はJ2EE仕様と異なり,設定値(Java Type)によって対応するDDが変わります。Java Typeによって異なるDDの対応を次の表に示します。
表2‒29 type属性によるDDの対応表 type属性
J2EE仕様で対応するDDのタグ
アプリケーションサーバ仕様で対応する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
javax.xml.ws.WebServiceContext
未定義
resource-env-ref※4
上記以外のすべてのタイプ※5
resource-env-ref
resource-env-ref
(c) authenticationType属性
- 型
-
AuthenticationType
- 説明
-
リソースに使用する認証タイプを設定します。
- デフォルト値
-
CONTAINER
(d) shareable属性
- 型
-
boolean
- 説明
-
リソースを共用するかどうかを設定します。
- デフォルト値
-
true
(e) mappedName属性
- 型
-
String
- 説明
-
参照先リソースを特定するためにリソース表示名やキュー名を設定します。
リソース表示名に半角英数字およびアンダースコア(_)以外の文字を含む場合,半角英数字およびアンダースコア(_)以外の文字をアンダースコア(_)に置き換えて設定してください。
- デフォルト値
-
""
- mappedName属性の設定条件
-
mappedName属性はtype属性によって設定条件が変わります。@ResourceでのmappedName属性の設定条件を次の表に示します。
表2‒30 @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リソース
○
(f) lookup属性
- 型
-
String
- 説明
-
参照する別のリソース参照のPortable Global JNDI名,またはリソースの別名を設定します。
- デフォルト値
-
""
(g) description属性
- 型
-
String
- 説明
-
リソースの説明を設定します。
- デフォルト値
-
""