Java注解
Posted 小小分析猿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java注解相关的知识,希望对你有一定的参考价值。
一. java注解与注释注解区别,注释注解对于新手来说很容易混淆。注解与注释有什么不同点 ?
1.定义不同:注解:英名为Annotation,它是JDK5.0及以后版本引入的一个特性。 与类、接口、枚举是在同一个层次,可以成为java 的一个类型。用一个词描述注解------元数据,它是一种描述数据的数据。所以,可以说注解就是源代码的元数据。注释:是对源代码作介绍、评议或说明的文字。
2.作用不同:注解是Java 编译器可以理解的部分,是给编译器看的。通过标记包、类、字段、方法、局部变量、方法参数等元素据,告诉jvm这些元素据的信息。注释是程序员对源代码做一些记忆或提示性描述,是给人来看的。它能告诉开发者这段代码的逻辑、说明、特点等内容,对代码起到解释、说明的作用。
3.使用范围不同:注解 ,参与代码编译,以@开头的,与工具一起使用。对于位置、语法、内容有一定的限制。注释 ,可以随意在任务位置填写内容,对代码任何没有影响。
4.运行过程不同:注解,在运行中JVM会去读取它,并对相应数据进行的操作,会向程序员反遣被标元素的注解。
注释,会被编译器忽略。
二. 四种元注解
@Target({ ElementType.TYPE }) 意思就是被此注解修饰的注解只能用于修饰类,接口,enum
Target – 表示该注解用于什么地方。默认值为任何元素,表示该注解可用于什么地方。可用的ElementType参数包括
● ElementType.CONSTRUCTOR:用于描述构造器
● ElementType.FIELD:成员变量、对象、属性(包括enum实例)
● ElementType.LOCAL_VARIABLE:用于描述局部变量
● ElementType.METHOD:用于描述方法
● ElementType.PACKAGE:用于描述包
● ElementType.PARAMETER:用于描述参数
● ElementType.TYPE:用于描述类、接口(包括注解类型) 或enum声明
@Retention(RetentionPolicy.Runtime) 定义了注解的生命周期
● RetentionPolicy.SOURCE : 在编译阶段丢弃。这些注解在编译结束之后就不再有任何意义,所以它们不会写入字节码。@Override, @SuppressWarnings都属于这类注解。
● RetentionPolicy.CLASS : 在类加载的时候丢弃。在字节码文件的处理中有用。注解默认使用这种方式
● RetentionPolicy.RUNTIME : 始终不会丢弃,运行期也保留该注解,因此可以使用反射机制读取该注解的信息。我们自定义的注解通常使用这种方式。
@Documented–一个简单的Annotations标记注解,表示是否将注解信息添加在java文档中。
@Inherited – 定义该注释和子类的关系
@Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。
三. Spring常用注解
1、@controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层
2、@service 服务(注入SERVICES)
用于标注服务层,主要用来进行业务的逻辑处理
3、@repository(实现DAO访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的
<bean id="" class=""/>)
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
详情请见
转载:https://www.cnblogs.com/jpfss/p/8126049.html 作者: 星朝
转载:https://blog.csdn.net/qq_41570658/article/details/90168630 作者:年少有为_知进退
以上是关于Java注解的主要内容,如果未能解决你的问题,请参考以下文章