java注解列表
@Target(targettype)
用于指示那种类型可以应用annotation。
如果一个annotation没有定义target,那么这个annotation可以出现在任何元素上。
target的参数是java.lang.annotation.ElementType.*类型:
ANNOTATION_TYPE:annotation
CONSTRUCTOR:构造方法
- FIELD:类field,包括enum
- LOCAL_VARIABLE:本地变量
- METHOD:方法
- PACKAGE:包
- PARAMETER:参数
TYPE:类、接口、annotation、enum
如:
//这个MetaAnnotationType仅能出现在定义annotation时
@Target(ElementType.ANNOTATION_TYPE) public @interface MetaAnnotationType { ... }
@Retention(tetention-policy)
retention定义annotation失效时机。
其值是java.lang.annotation.RetentionPolicy.*类型,具体取值:
- source:仅仅在source阶段生效,如@Override、@SuppressWarnings
- class(默认):在class加载时失效,但在编译成二进制文件时是有效的
- runtime:不会失效。如:@Deprecated
import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; // 此类型annotation不会失效 @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation { String stringValue(); int intValue(); } public class MainClass { // 在运行时,可以获取MyAnnotation的信息 @MyAnnotation(stringValue = "Annotation Example", intValue = 100) public static void myMethod() { } }
@Documented
用于指示配置此annotation的java元素,会被javadoc文档化。
@Documented @Inherited // for descenders of the annotation to have the @documented feature automatically @Retention(RetentionPolicy.RUNTIME) // must be there public @interface InWork { ... /** * annotated class */ @InWork(value = "") public class MainApp { ...
如果用javadoc来获取doc文档,会看到MainApp的文档
@Configuration
用于指示class可以被spring ioc容器作为bean的definition
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。