建设分销网站,百度关键词推广价格查询,企业所得税的优惠政策,网上找设计师一、元注解介绍
1.1.源码引入 1.2.元注解介绍 从上面的图片可知#xff0c;Spring 有四个【负责注解其他注解】的元注解#xff0c;分别是#xff1a; Target#xff1a;标识该注解可以用于标注哪些程序元素#xff0c;比如类、方法、字段等。 Retention#xff1a;标…一、元注解介绍
1.1.源码引入 1.2.元注解介绍 从上面的图片可知Spring 有四个【负责注解其他注解】的元注解分别是 Target标识该注解可以用于标注哪些程序元素比如类、方法、字段等。 Retention标识该注解的生命周期即在什么时候该注解会被保留可选的生命周期包括源码SOURCE、编译时CLASS和运行时RUNTIME。 RetentionPolicy.SOURCE该注解仅在源代码中存在编译器编译时会忽略这些注解。这意味着编译后的.class文件中不会包含这些注解。这种注解一般用于编译时的检查和调试。 RetentionPolicy.CLASS该注解在编译时会被保留并存储在.class文件中但在运行时会被忽略。这种注解主要用于编译时的字节码处理。 RetentionPolicy.RUNTIME该注解在运行时会被保留并可以通过反射获取到注解信息。这种注解一般用于在运行时处理某些逻辑比如实现自定义的 IOC 框架、AOP 框架等。 一般来说如果需要在运行时通过反射获取注解信息那么就需要将注解的 Retention 属性设置为 RetentionPolicy.RUNTIME。 Documented标识该注解会被包含在 JavaDoc 中。 Inherited用于指定注解是否可以被继承默认情况下注解不会被子类继承。 二、元注解的必要性 在Spring框架中元注解的使用是可选的可以根据需要省略其中的一些。以下是一些可以被省略的元注解 1. Target如果不指定该元注解注解可以应用于所有的目标元素类型。 2. Retention如果不指定该元注解默认的生命周期是运行时RUNTIME。 3. Documented如果不指定该元注解注解在Java文档中不会被包含。 4. Inherited如果不指定该元注解注解不能被子类继承。
三、元注解省略的限制 虽然从上面的介绍看好像每个都能省略但实际上无法同时省略所有四个元注解。 其中Retention和Target是必需的因为它们定义了注解的生命周期和应用目标。如果省略这两个元注解编译器将无法正确解析和处理注解。 Documented和Inherited是可选的可以根据需要省略。但请注意省略Documented会导致注解不会出现在Java文档中而省略Inherited则意味着注解不能被子类继承。