Java注解理解笔记

Java注解本身就是一个类,这个类的作用就是方便对代码进行自定义的调整

1、@Target 指定了该注解的适用范围,图为作用于类

2、@Retention 指定了注解的生命周期

3、@Documented 将注解中的元素包含到JavaDoc文档中

4、@interface 表明注解的类型为Annotation

5、为Annotation属性,前面的类型指定了属性的类型,后面(value)指定了属性名称,default表示默认值后面的“” 表示默认值为无。上面的@AliasFor表示下面属性的别名。

1-1 @Target存在

ElementType.TYPE(作用于类、接口类、枚举类)

@Service
public class MessageServiceImpl implements MessageService{

    public String getMessage() {
         return "Hello World!";
    }

}

ElementType.FIELD(作用于类的属性上)

public class MessageServiceImpl implements MessageService{

    @Autowired
    private WorkspaceService workspaceService;

}

ElementType.METHOD(作用于类的方法上)

public class MessageServiceImpl implements MessageService{

    @ResponseBody
    public String getMessage() {
         return "Hello World!";
    }

}

ElementType.PARAMETER(作用于类的参数上)

public class MessageServiceImpl implements MessageService{

    public String getMessage(@RequestParam("msg")String msg) {
         return "Hello "+msg;
    }

}

同时作用用逗号隔开

2-1@RetentionRetentionPolicy值存在:

SOURCE(纯注释作用)

CLASS(编译阶段有效)

RUNTIME(运行时有效)