欢迎来到天天文库
浏览记录
ID:30777664
大小:203.14 KB
页数:22页
时间:2019-01-03
《java注解指导手册–终极向导-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Java注解指导手册-终极向导-编程开发技术Java注解指导手册-终极向导译文出处:ToienLiu原文出处:DaniBuiza编者的话:注解是java的一个主要特性且每个java开发者都应该知道如何使用它。我们已经在Java?Code?Geeks提供了丰富的教程,?如CreatingYourOwnJavaAnnotations,?JavaAnnotationsTutorialwithCustomAnnotation?和?Java?Annotations:?Explored?&?Explained.我
2、们也有些文章是关于注解在不同类库中的应用,包括?Makc?your?Spring?Sccurity?@Sccurcd?annotations?morc?DRY和?Java?Annotations?&?A?Real?World?Spring?Example・现在,是时候汇总这些和注解相关的信息到一篇文章了,祝大家阅读愉快。H录1.什么是注解2.介绍3.消费器4.注解语法和注解元索5.在什么地方使用6.使用案例7.内建注解&Java8与注解9.自定义注解10.提取注解11.注解集成12.使用注解的知名类库
3、13.小结14.下载15.资料在这篇文章中我们将阐述什么是J3V3注解,它们如何工作,怎么使用它们。我们将揭开Java注解的面纱,包括内建注解或称元注解,还将讨论Java8屮与Z相关的的新特性。最后,我们将实现自定义的注解,编写一个使用注解的处理程序(消费器),它通过java反射使用注解。我们还会列岀一些基于注解,知名H被广泛应用的第三方类库如:Jimit,JAXB,Spring,Ilibernate。在文章的最后,会有一个压缩文件包含了文章中的所有示例,实现这些例了使用的软件版本如下所示:•Ecli
4、pseLuna4.4•JREUpdate8.20•Junit4•Hibernate4.3.6•FindBugs3.0.01・什么是注解?注解早在J2SE1.5就被引入到Java屮,主要提供一种机制,这种机制允许程序员在编写代码的同时可以直接编写元数据。在引入注解Z前,程序员们描述其代码的形式尚未标准化,每个人的做法各异:transient关键字、注释、接口等。这显然不是一种优雅的方式,随之/而来的一种崭新的记录元数据的形式——注解被引入到Java中。其它因索也促成了这个决定:当吋不同类型的应用程序使用
5、XML作为标准的代码配置机制,这其实并不是最佳方式,因为代码和XML的解耦以及未來对这种解耦应用的维护并不低廉。另外,由于非保留字的使用,例如“©deprecated”自从Javal.4便开始在Java文档中使用。我非常确定这是一个现在在注解中使用原因。包含注解的设计和开发的Java规范主要有以下两篇:•JSR175AmetadatafacilityfortheJavaprogrammingLanguage•JSR250CommonAnnotationsfortheJavaPlatform2.介绍解释
6、何为注解的最佳方式就是元数据这个词:描述数据自身的数据。注解就是代码的元数据,他们包含了代码自身的信息。注解可以被用在包,类,方法,变量,参数上。flJava8起,有一种注解几乎可以被放在代码的任何位置,叫做类型注解。我们将会在后而谈到具体用法。被注解的代码并不会直接被注解影响。这只会向第三系统捉供关于自己的信息以用于不同的需求。注解会被编译至class文件中,而且会在运行时被处理程序提取出来用于业务逻辑。当然,创建在运行时不可用的注解也是可能的,甚至可以创建只在源文件中可用,在编译时不可用的注解。3
7、•消费器理解注解的目的以及如何使用它都会帯来困难,因为注解本身并不包含任何功能逻辑,它们也不会影响自己注解的代码,那么,它们到底为什么而存在呢?这个问题的解释就是我所称的注解消费器。它们是利用被注解代码并根据注解信息产生不同行为的系统或者应用程序。例如,在Javat带的内建注解(元注解)屮,消费器是执行被注解代码的JVM。还有其他稍后谈到的其他例子,例如JUnit,消费器是读取,分析被注解代码的JUnit处理程序,它还可以决定测试单元和方法执行顺序。我们会在JUnit章节更深入。消费器使用Java中的
8、反射机制來读取和分析被注解的源代码。使用的主要的包冇:java,lang,java.lang,reflecto我们将会在本篇指南屮介绍如何用反射从头开始创建一个自定义的消费器。4.注解语法和元素声明一个注解需要使用“幘作为前缀,这便向编译器说明,该元素为注解。例如:©AnnotationpublicvoidannotatedMehod(){上述的注解名称为Annotation,它止在注解annotatedMethod方法。编译器会处理它。注解可以以键值对
此文档下载收益归作者所有