Java 声明注解
来源:百度文库 编辑:神马文学网 时间:2024/04/30 01:39:41
注解其实可以看成是一个特殊的 Class 。 只不过不用关键字 class 而已, 而是用 声明@Target 说明注解使用的地方(目的地) {类上,字段上,或是方法上?? etc... }。
类上面:TYPE字段上:FIELD方法上:METHOD
@Retention 注解的生存周期(能在什么时候有效) 可选值为:源代码 ? 一直到运行时都有效 ?etc... RUNTIME 一直到运行时都有效,说明程序运行时可以通过反射得到注解的信息。
@Target({TYPE, FIELD, METHOD})@Retention(RUNTIME)public @interface Resource { /** * The JNDI name of the resource. For field annotations, * the default is the field name. For method annotations, * the default is the JavaBeans property name corresponding * to the method. For class annotations, there is no default * and this must be specified. */ String name() default "";
/** * The Java type of the resource. For field annotations, * the default is the type of the field. For method annotations, * the default is the type of the JavaBeans property. * For class annotations, there is no default and this must be * specified. */ Class type() default java.lang.Object.class;
/** * The two possible authentication types for a resource. */ enum AuthenticationType { CONTAINER, APPLICATION }
/** * The authentication type to use for this resource. * This may be specified for resources representing a * connection factory of any supported type, and must * not be specified for resources of other types. */ AuthenticationType authenticationType() default AuthenticationType.CONTAINER;
/** * Indicates whether this resource can be shared between * this component and other components. * This may be specified for resources representing a * connection factory of any supported type, and must * not be specified for resources of other types. */ boolean shareable() default true;
/** * A product specific name that this resource should be mapped to. * The name of this resource, as defined by the
类上面:TYPE字段上:FIELD方法上:METHOD
@Retention 注解的生存周期(能在什么时候有效) 可选值为:源代码 ? 一直到运行时都有效 ?etc... RUNTIME 一直到运行时都有效,说明程序运行时可以通过反射得到注解的信息。
@Target({TYPE, FIELD, METHOD})@Retention(RUNTIME)public @interface Resource { /** * The JNDI name of the resource. For field annotations, * the default is the field name. For method annotations, * the default is the JavaBeans property name corresponding * to the method. For class annotations, there is no default * and this must be specified. */ String name() default "";
/** * The Java type of the resource. For field annotations, * the default is the type of the field. For method annotations, * the default is the type of the JavaBeans property. * For class annotations, there is no default and this must be * specified. */ Class type() default java.lang.Object.class;
/** * The two possible authentication types for a resource. */ enum AuthenticationType { CONTAINER, APPLICATION }
/** * The authentication type to use for this resource. * This may be specified for resources representing a * connection factory of any supported type, and must * not be specified for resources of other types. */ AuthenticationType authenticationType() default AuthenticationType.CONTAINER;
/** * Indicates whether this resource can be shared between * this component and other components. * This may be specified for resources representing a * connection factory of any supported type, and must * not be specified for resources of other types. */ boolean shareable() default true;
/** * A product specific name that this resource should be mapped to. * The name of this resource, as defined by the
name
* element or defaulted, is a name that is local to the application * component using the resource. (It's a name in the JNDI * java:comp/env
namespace.) Many application servers * provide a way to map these local names to names of resources * known to the application server. This mapped name is often a * global JNDI name, but may be a name of any form. * * Application servers are not required to support any particular * form or type of mapped name, nor the ability to use mapped names. * The mapped name is product-dependent and often installation-dependent. * No use of a mapped name is portable. */ String mappedName() default "";
/** * Description of this resource. The description is expected * to be in the default language of the system on which the * application is deployed. The description can be presented * to the Deployer to help in choosing the correct resource. */ String description() default "";}