做项目挣钱的网站,免费crm软件下载,阿里云wordpress安装目录,ui毕业设计代做网站java注解
注解的定义
Java 注解用于为 Java 代码提供元数据。作为元数据#xff0c;注解不直接影响你的代码执行#xff0c;但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。
首先要明确一点的是#xff0c;注解并没有实际的作用注解不直接影响你的代码执行但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。
首先要明确一点的是注解并没有实际的作用注解只是起到了标记的作用仅此而已
注解的类型
1、Java自带的标准注解 包括Override、Deprecated、SuppressWarnings等使用这些注解后编译器就会进行检查。
2、元注解 元注解是用于定义注解的注解包括Retention、Target、Inherited、Documented、Repeatable 等。 元注解也是Java自带的标准注解只不过用于修饰注解比较特殊。
3、自定义注解 用户可以根据自己的需求定义注解。
如何自定义注解 其实很简单的例子如下
package com.spring.annotation;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;/*** 请求映射** author ez4sterben* date 2023/07/22*/
Target({ElementType.TYPE,ElementType.METHOD})
Retention(RetentionPolicy.RUNTIME)
public interface RequestMapping {String value() default ;
}
使用方式可以参考博主的这篇博客 【仿写spring】一、通过反射读取带有RequestMapping与Controller注解的类并模拟请求路径调用方法
注解的组成
注解主类
package java.lang.annotation;
public interface Annotation {boolean equals(Object obj);int hashCode();String toString();Class? extends Annotation annotationType();
}ElementType枚举类放在Target中表示注解可以在哪些位置生效
package java.lang.annotation;public enum ElementType {TYPE, /* 类、接口包括注释类型或枚举声明 */FIELD, /* 字段声明包括枚举常量 */METHOD, /* 方法声明 */PARAMETER, /* 参数声明 */CONSTRUCTOR, /* 构造方法声明 */LOCAL_VARIABLE, /* 局部变量声明 */ANNOTATION_TYPE, /* 注释类型声明 */PACKAGE /* 包声明 */
}用来声明注解的生命周期
package java.lang.annotation;
public enum RetentionPolicy {SOURCE, /* Annotation信息仅存在于编译器处理期间编译器处理完之后就没有该Annotation信息了 */CLASS, /* 编译器将Annotation存储于类对应的.class文件中。默认行为 */RUNTIME /* 编译器将Annotation存储于class文件中并且可由JVM读入 */
}注解的架构 注解的作用
1、生成文档通过代码里标识的元数据生成javadoc文档。
2、编译检查通过代码里标识的元数据让编译器在编译期间进行检查验证。
3、编译时动态处理编译时通过代码里标识的元数据动态处理例如动态生成代码。
4、运行时动态处理运行时通过代码里标识的元数据动态处理例如使用反射注入实例