package com.yangwei.shop.entity;
/**
* annotation作用 一是进行标识,二是进行约束
*
*/
//必须让它在运行时能够执行
@Retention(RetentionPolicy.RUNTIME)
public @interface ShopDi {
/**
* 表示为这个annotation加了一个属性值,如果没有定义default,必须在使用该annotation时定义该属性
* @ShopDi(abc="XXX")
*/
String abc() default "";
/**
* value是Annotation的默认属性,在定义的时候可以不用vaule=""定义,而是直接通过
* @ShopDi("XXX")
* 特别注意,当需要定义两个以上的属性时,默认属性就不起作用了,此时需要如下形式定义
* @ShopDi(value="XXX",abc="YYY")
*/
String value() default "";
}
package com.yangwei.shop.test;
import com.yangwei.shop.entity.ShopDi;
public class TestAnnotation {
//abc属性没有default时,必须指定值
@ShopDi(abc="abc")
public void test01(){
}
//abc属性有default时,可以不指定
@ShopDi
public void test02(){
}
//value值的指定方式
@ShopDi("hello")
public void test03(){
}
//value值的指定方式
@ShopDi(value="hello",abc="world")
public void test04(){
}
}