注解

注解

分类 --jdk提供的五个注解,常用的@Override

--元注解五个,常用的是@Target / @Retention

--通常配合元注解完成自定义注解

@Target

--用来指定 注解可以出现的位置

--比如出现在: 类上,方法上,成员变量上,局部变量上...

--值被维护在了工具类 ElementType.class

@Retention

--用来指定 注解的生命周期

--比如: .java文件中 .class文件中 runtime时

--值被维护在了工具类 RetentionPolicy.class

 

自定义注解

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//测试 注解
public class Test4 {
}
//第一步,@interface定义注解 -- 语法和java不太一样
//1,@Target--描述注解可以出现的位置--ElementType
//2,@Retention--描述注解的生命周期--RetentionPolicy
//@Target( ElementType.FIELD } )//FIELD表示可以出现在成员变量上
@Target({ ElementType.FIELD , ElementType.METHOD })//可以 同时出现在 多个位置上
@Retention(RetentionPolicy.SOURCE)//SOURCE表示可以在.java文件中存在
@interface Controller{
//3,给注解添加功能--属性
// String name() default ""; //4,给属性设置默认值
String name();//5,属性没有默认值, 就要求使用时必须赋值了...
}
//第二步,使用注解 @Controller
//@Controller//1, 报错,出现在了错误的位置
class Hello{
@Controller(name="name属性要用")//6,给name属性赋值
String name;
@Controller(name="show()")
public void show(int a){
System.out.println(a);
}
}
上一篇:2.18 @Autowired注解


下一篇:Spring Boot----@Valid