1 /** 2 * 标注 3 * : Java应用主要有两种配置方式。 4 * xml: 做配置文件 5 * perperties:属性文件 6 * json:做配置 7 * 注解:(做配置) 8 */ 9 public class Demo02 { 10 @Override //重写注解 11 public String toString() { 13 return super.toString(); 14 } 15 } 16 //-- @Deprecated :弃用 17 //-- 自己编写标注 18 //-- @interface 定义标注 19 //-- @Target、@Retention 元标注,sun公司人写的,是用于标注标注的标注 20 //-- @Documented:是用于生成API文档 21 //-- @Target:是用于说明你写的标注用于什么地方, 22 //-- 例如:Type说明该标注可以再类上使用,METHOD说明可以修饰方法 23 //-- @Retention:用于说明你写的标注要在什么时候还起作用,在程序运行时标注还能jvm检测到(范围)。 24 //-- 25 @Target({ElementType.TYPE,ElementType.METHOD}) 26 @Retention(RetentionPolicy.RUNTIME) 27 @interface Hello{ 28 String value() default "ubdf1907"; 29 //-- default 设置默认值 //value特殊:使用时可以不写@Hello("dd"); 30 String foo(); 31 String[] url(); 32 } 33 34 //@Hello 35 class Animal{ 36 37 @Override 38 @Hello(foo="李四",url={"aaa","bbb"}) 39 public String toString() { 40 // TODO Auto-generated method stub 41 return super.toString(); 42 } 43 @Hello(value = "张三",foo="李四",url={"aaa","bbb"}) 44 public void test01() { 45 //-- value相当于给Hello标注定义一个属性。 46 System.out.println("test01"); 47 } 48 @Hello(value = "张三",foo="李四",url={"aaa","bbb"}) 49 public void test02() { 50 //-- value相当于给Hello标注定义一个属性。 51 System.out.println("test01"); 52 } 53 @Controller(urlPartten= {"/estore/aaa","/estore/bbb"}) 54 public void test04() { 55 56 } 57 } 58 59 /** 60 * 61 * 自定义第二个注解@Controller 62 * 63 */ 64 @Target({ElementType.TYPE,ElementType.METHOD}) 65 @Retention(RetentionPolicy.RUNTIME) 66 @interface Controller{ 67 String[] urlPartten(); 68 }
练习:使用反射技术获取带有@Controller 标注的方法,并执行它。