Cosminexus リファレンス API編

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

10.1 Cosminexusが対応しているアノテーション

アノテーションは,ソースコードに注釈を付けることができる言語仕様です。

Cosminexusが対応しているアノテーションの一覧を次の表に示します。

表10-1 Cosminexusが対応しているアノテーションの一覧

パッケージ アノテーション アノテーションの説明 属性 属性のデフォルト値 属性の説明
javax.annotation @Resource リソースへの参照を宣言します。
クラス,メソッド,フィールドに設定できます。メソッドやフィールドに設定した場合,Dependency Injectionの対象となります。ただし,メソッドはsetメソッドである必要があります。
String name()
  • メソッドに設定した場合
    アノテーションを設定したクラス名/setメソッドのプロパティ
  • フィールドに設定した場合
    アノテーションを設定したクラス名/フィールド名
リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。
Class type()※1
  • メソッド設定した場合
    メソッドの引数の型
  • フィールドに設定した場合
    フィールドの型
リソースのJavaタイプを設定します。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。
AuthenticationType authenticationType() CONTAINER リソースに使用する認証タイプを設定します。
boolean shareable() true リソースを共用するかどうかを設定します。
String mappedName()※2 "" 参照先リソースを特定するためにリソース表示名やキュー名を設定します。
String description() "" リソースの説明を設定します。
@Resources @Resourceを複数設定します。
なお,クラスにだけ設定できます。
Resource[] value なし 複数のリソース(@Resource)を定義します。
@PostConstruct Enterprise Beanインスタンスが生成された直後にコールバックするメソッドを設定します。 なし
@PreDestroy Enterprise Beanインスタンスが削除される直前にコールバックするメソッドを設定します。 なし
javax.annotation.security @RunAs Enterprise Beanを実行する際に適用するセキュリティロールを設定します。
なお,クラスにだけ設定できます。
String value() なし Enterprise Beanを実行する際に適用するセキュリティロール名を設定します。
@DeclareRoles セキュリティロールの参照を設定します。
なお,クラスにだけ設定できます。
String[] value() なし 参照するセキュリティロール名を設定します。
@RolesAllowed クラスまたはメソッドに対してアクセスを許可するセキュリティロールを設定します。 String[] value() なし アプリケーションでのメソッドにアクセスするのが許可されたロールリストを設定します。
@PermitAll すべてのセキュリティロールに対して,アクセスを許可するクラスまたはメソッドに設定します。 なし
@DenyAll すべてのセキュリティロールに対して,アクセスを拒否するメソッドに設定します。 なし
javax.ejb @Stateless Stateless Session Beanのクラスに設定します。 String name() Stateless Session Beanのパッケージを除いたクラス名 Stateless Session Beanの名称を設定します。
String mappedName()※3 なし
String description() "" Stateless Session Beanの説明を設定します。
@Stateful Stateful Session Beanのクラスに設定します。 String name() Stateful Session Beanのパッケージを除いたクラス名 Stateful Session Beanの名称を設定します。
String mappedName()※3 なし
String description() "" Stateful Session Beanの説明を設定します。
@Init Stateful Session BeanのHomeインタフェースで定義したcreate<METHOD>()を実行した際,コールバックするメソッドに設定します。 String value() "" 対応するcreate<METHOD>()名を設定します。
@Remove Stateful Session Beanを削除する働きを持つビジネスメソッドに設定します。 boolean retainIfException() false メソッドがアプリケーション例外で異常終了した場合に削除するかどうかを設定します。
@Remote Enterprise Beanのリモートビジネスインタフェースを設定します。
アノテーションをインタフェースに設定した場合,そのインタフェースがリモートビジネスインタフェースとなります。Beanクラスに設定した場合,value属性にリモートビジネスインタフェースを設定する必要があります。
Class[] value() {} アノテーションをBeanクラスに設定した場合,リモートビジネスインタフェースのクラスを設定します。
@Local Enterprise Beanのローカルビジネスインタフェースを設定します。
アノテーションをインタフェースに設定した場合,そのインタフェースがローカルビジネスインタフェースとなります。Beanクラスに設定した場合,value属性にローカルビジネスインタフェースを設定する必要があります。
Class[] value() {} アノテーションをBeanクラスに設定した場合,ローカルビジネスインタフェースのクラスを設定します。
@RemoteHome リモートホームインタフェース,およびリモートコンポーネントインタフェースを使用した呼び出しをサポートするEnterprise Beanのクラスに設定します。 Class value() なし リモートホームインタフェースを設定します。
@LocalHome ローカルホームインタフェース,およびローカルコンポーネントインタフェースを使用した呼び出しをサポートするEnterprise Beanのクラスに設定します。 Class value() なし ローカルホームインタフェースを設定します。
@TransactionManagement Enterprise Beanのトランザクション管理種別を設定します。
なお,クラスにだけ設定できます。
TransactionManagementType value() CONTAINER トランザクション管理種別を設定します。
@TransactionAttribute Enterprise BeanがCMTで動作する場合のトランザクション属性を設定します。
クラス,メソッドに設定できます。
TransactionAttributeType value() REQUIRED トランザクション属性を設定します。
@PostActivate※4 Stateful Session Beanが活性化された直後にコールバックするメソッドに設定します。 なし
@PrePassivate※4 Stateful Session Beanが非活性化される直前にコールバックするメソッドに設定します。 なし
@Timeout TimerService使用時にコールバックするタイムアウトメソッドに設定します。 なし
@ApplicationException アプリケーション例外とする例外クラスに設定します。 boolean rollback() false 例外発生時にコンテナがトランザクションをロールバックするかどうかを設定します。
@EJB EJBのビジネスインタフェースまたはホームインタフェースへの参照を設定します。
クラス,メソッド,フィールドに設定できます。メソッドやフィールドに設定した場合,Dependency Injectionの対象となります。ただし,メソッドはsetメソッドである必要があります。
String name()
  • メソッドに設定した場合
    アノテーションを設定したクラス名/setメソッドのプロパティ
  • フィールドに設定した場合
    アノテーションを設定したクラス名/フィールド名
リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。
Class beanInterface()
  • メソッド設定した場合
    メソッドの引数の型
  • フィールドに設定した場合
    フィールドの型
ビジネスインタフェースまたはホームインタフェースのクラスを設定します。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。
String beanName() "" 参照するEJBのパッケージなしクラス名を設定します。ただし,参照するEJBクラスを定義するアノテーション(@Stateless, @Stateful)にname属性が設定されている場合,name属性の値を設定します。また,DDによる定義をサポートするEJBの場合,DDの<ejb-name>タグの値を設定します。
String mappedName()※3 なし
String description() "" 参照するEJBの説明を設定します。
@EJBs @EJBを複数設定します。
なお,クラスにだけ設定できます。
EJB[] value() なし @EJBを設定します。
javax.interceptor @AroundInvoke ビジネスメソッドの呼び出しをインターセプトするメソッドに設定します。 なし
@ExcludeDefaultInterceptors デフォルトインターセプタを適用しないクラス,およびメソッドに設定します。 なし
@ExcludeClassInterceptors クラスインターセプタを適用しないメソッドに設定します。 なし
@Interceptors 適用するインターセプタクラスを設定します。
クラス,およびメソッドに設定できます。
Class[] value() なし 適用するインターセプタクラスを設定します。

(凡例)
−:該当しません。

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

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

注※3
属性を指定できますが,サポートしないため,動作しません。

注※4
アノテーションを設定できますが,活性化,非活性化の状態変化をサポートしないため,動作しません。

表10-2 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
インポート時に例外となります。

表10-3 @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を使用する場合,リソースアダプタの表示名とキューの表示名の区切り文字には,「#」を使用してください。