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 标注的方法,并执行它。