java中的元注解:我们可以理解为自定义注解,
@Retention(RetentionPolicy.RUNTIME)注释反方式
@Target()修饰的对象范围
@Documented注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的
@Configuration 注册为配置文件,内置@Component 因为没了xml无法配置
@Inherited注解之间可以继承
@Retention()中的三个值
1.RetentionPolicy.SOURCE —— 在源代码级别保留,编译时就会被忽略
2.RetentionPolicy.CLASS —— 编译时被保留,在class文件中存在,但JVM将会忽略
3.RetentionPolicy.RUNTIME —— 将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用.
@Target()
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
8.ANNOTATION_TYPE//注解
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})
@Documented
@Configuration
@Inherited
public @interface LoginAnnotate {
String value() ;
/*
java中的元注解:我们可以理解为自定义注解
@Retention(RetentionPolicy.RUNTIME)
@Target()修饰的对象范围
@Documented注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的
@Configuration 注册为配置文件,内置@Component 因为没了xml无法配置
@Inherited注解之间可以继承
@Retention()中的三个值
1.RetentionPolicy.SOURCE —— 在源代码级别保留,编译时就会被忽略
2.RetentionPolicy.CLASS —— 编译时被保留,在class文件中存在,但JVM将会忽略
3.RetentionPolicy.RUNTIME —— 将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用.
@Target()
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
8.ANNOTATION_TYPE//注解
*/
}
使用
@RestController
public class testController {
@RequestMapping("/A")
@LoginAnnotate("test") //使用自定义注解 value 属性可以省略不声明
public String A(){
return "ok";
}
}