@Target(value = ElementType.FIELD)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Column {
String name() ;
boolean isId() default false;
}
这是声明一个注解,@Target与@Retention为元注解,用来对自定义注解进行标识的注解。。。
@Target定义这个注解可以使用的范围,常用的三种:
ElementType.FIELD, 可以使用在属性上
ElementType.TYPE,可以使用在类级别上,比如类,接口
ElementType.METHOD 可以使用在方法上
@Retention用来标识注解会保留到什么时候
RetentionPolicy.RUNTIME, 一直保留到运行时(最常用,因为自定义注解就是用来让别的程序在程序运行的时候读取的)
RetentionPolicy.SOURCE, 保留到源文件中
RetentionPolicy.CLASS 保留到字节码文件中
String name() ; 注解的属性,如果没有定义default 则使用这个注解时必须显示的给name赋值,如
public class Test {
@Column(name = "张三")
private String name;
}
如果不赋值的话,编译通不过,但是个isId()这个属性声明了default默认值的话,便没必要显示的赋值。