アノテーションは,ソースコードに注釈を付けることができる言語仕様です。
Cosminexusが対応しているアノテーションの一覧を次の表に示します。
表10-1 Cosminexusが対応しているアノテーションの一覧
パッケージ | アノテーション | アノテーションの説明 | 属性 | 属性のデフォルト値 | 属性の説明 |
---|---|---|---|---|---|
javax.annotation | @Resource | リソースへの参照を宣言します。 クラス,メソッド,フィールドに設定できます。メソッドやフィールドに設定した場合,Dependency Injectionの対象となります。ただし,メソッドはsetメソッドである必要があります。 | String name() |
| リソース参照の名称を設定します。設定した名称は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() |
| リソース参照の名称を設定します。設定した名称は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() | なし | 適用するインターセプタクラスを設定します。 |
表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 |
表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リソース | ○ |