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(){ } }