- 浏览: 7182908 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (397)
- 架构研究 (44)
- 网络协议-TCP/HTTP (20)
- SPRING (23)
- HIBERNATE 3 (30)
- STRUTS 2 (20)
- Java/J2se (25)
- Servlet/Jsp (9)
- 开发工具IDE (10)
- WEB服务器 (17)
- 前端--Java Script (33)
- 前端--CSS (7)
- OS--Linux (31)
- OS--MAC OS (19)
- MySQL数据库 (19)
- Oracle数据库 (11)
- 项目管理工具 (12)
- 数据报表技术 (4)
- 图像处理技术 (10)
- 其它综合技术 (13)
- 权限管理 (1)
- MyBatis (1)
- 网络安全 (6)
- IO (21)
- PostgreSQL (2)
- Eclipse RCP (1)
- GWT (1)
- 算法 (3)
- Storm (2)
- zookeeper (3)
- 消息 (1)
最新评论
-
bukebuhao:
已解决,打开文件太多。ulimit -n 上次临时生效后再次s ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
bukebuhao:
ds重启后启动不了。报错信息如下,请大神帮助[2018-08- ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
墨上清:
感谢,看完有了一个完整的知识网络。
Spring MVC 教程,快速入门,深入分析 -
云卷云舒灬:
谢谢,学到很多
Spring MVC 教程,快速入门,深入分析 -
luozhy:
非常感谢非常感谢
Project Web Access ActiveX控件 安装
作者:赵磊
博客:http://elf8848.iteye.com
自定义注解示例
---------------------------------------------
@Transactional 注解示例
package org.springframework.transaction.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.transaction.TransactionDefinition; @Target({ElementType.METHOD, ElementType.TYPE})//可以作用在类上和方法上 @Retention(RetentionPolicy.RUNTIME)//可以通过反射读取注解 @Inherited//可以被子类继承 @Documented//javadoc生成文件档时,包含本注解信息 public @interface Transactional { String value() default "";//使用时没有指定key,值默认赋给value,如:Transactional("abc") Propagation propagation() default Propagation.REQUIRED; Isolation isolation() default Isolation.DEFAULT; int timeout() default TransactionDefinition.TIMEOUT_DEFAULT; boolean readOnly() default false; Class<? extends Throwable>[] rollbackFor() default {}; String[] rollbackForClassName() default {}; Class<? extends Throwable>[] noRollbackFor() default {}; String[] noRollbackForClassName() default {}; }
J2SE5.0为注解单独提供了4种注解
---------------------------------------------
它们是Target、Retention、Documented和Inherited。
可以在自定义注解时使用这4个注解。
@Inherited
---------------------------------------------
继承是java主要的特性之一。在类中的protected和public成员都将会被子类继承,但是父类的注解会不会被子类继承呢?
很遗憾的告诉大家,在默认的情况下,父类的注解并不会被子类继承。如果要让这个注解可以被继承,就必须在定义注解时在源码上加上@Inherited注解。
自大定义一个MyAnnotation注解 @Inherited @interface MyAnnotation { } 使用MyAnnotation注解 @MyAnnotation public class ParentClass {} 子类继承父类 public class ChildClass extends ParentClass { }
在以上代码中ChildClass和ParentClass一样都已被MyAnnotation注解了。
@Retention
---------------------------------------------
成功通过反射读取类上或方法上的注解,是有前提的--要使用@Retention,就是设置注解是否保存在class文件中。
下面的代码是Retention的详细用法。
@Retention(RetentionPolicy.SOURCE) @interface MyAnnotation1 { } //作用是不将注解保存在class文件中,也就是说象“//”一样在编译时被过滤掉了。 @Retention(RetentionPolicy.CLASS) @interface MyAnnotation2 {} //作用是只将注解保存在class文件中,而使用反射读取注解时忽略这些注解。 @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation3 {} //作用是即将注解保存在class文件中,也可以通过反射读取注解。这也是最常用的值
@Target
---------------------------------------------
标识自定义注解 可以作用于 类上、方法上、成员变量上、构造方法、其它...
@Documented
---------------------------------------------
在默认的情况下在使用javadoc自动生成文档时,注解将被忽略掉。如果想在文档中也包含注解,必须使用Documented为文档注解。
如何读取注解--类上的注解
---------------------------------------------
//取得类上的指定的注解 Annotation annotation = 类.class.getAnnotation(MyAnnotation.class); //取得类上的所有注解,包括继承的注解。 Annotation[] annotations = 类.class.getAnnotations(); //取当前类上的所有的注解,不包括继承的 Annotation[] annotations = 类.class.getDeclaredAnnotations();
如何读取注解--方法上的注解
---------------------------------------------
//取得方法上的指定的注解 Method m=? Annotation annotation = m.getAnnotation(MyAnnotation.class); //取得方法上的所有注解,包括继承的注解。 Annotation[] annotations = m.getAnnotations(); //取当前方法上的所有的注解,不包括继承的 Annotation[] annotations = m.getDeclaredAnnotations();
注:要想使用反射得到注解信息,这个注解在定义时源码中必须使用
@Retention(RetentionPolicy.RUNTIME)进行注解。
评论
|
[flash=200,200][url][img][list] |
[*]
|
[/list][/img][/url][/flash] |
发表评论
-
在浏览器中解析Base64编码图像
2014-05-25 17:25 7980上一篇介绍中,我们将二进制文件(BLOB)保存为Base64 ... -
细说Java IO相关
2014-05-25 13:48 4817细说Java IO相关 概述 在大部分的行业系统或 ... -
Java IO 的类图
2014-05-25 13:43 2070Java IO 的类图 拿出来方便大家。Java IO表 ... -
Java IO流学习总结
2014-05-25 13:35 3473Java流操作有关的类或 ... -
JAVA多线程和并发基础面试问答
2014-05-17 23:58 3927原文链接 译文连接 ... -
Java开发字符界面程序
2014-01-14 15:27 2727做银行、保险等行业,需要开发柜面系统,使用unix终端进行 ... -
JVM 优秀文章
2013-11-29 11:16 2134JVM垃圾收集器使用调查:CMS最受欢迎 http:// ... -
Java写的数据库连接池
2013-10-19 22:42 0Java写的数据库连接池 impo ... -
Web应用程序中线程的启动和关闭问题
2013-09-12 18:49 3431我们知道静态变量是ClassLoader级别的,如果Web ... -
Java线程池知识
2013-04-08 10:39 26691. 引言合理利用线程池能够带来好处。第一:降低资源消耗。通 ... -
子类可以继承到父类上的注解吗--有结论了
2012-08-04 23:51 57606作者:赵磊 博客:http://elf8848.ite ... -
Java Nio Buffer
2012-05-29 15:21 7117Buffer是特定基本类型元素的线性有限序列,它以及它的子类定 ... -
ScheduledExecutorService执行定时任务
2012-05-23 14:59 27780ScheduledExecutorService ... -
Java 高级知识
2012-05-18 18:34 15748Java 的一些高级知识你掌握了吗? 我最近在做一个网络通 ... -
字节序
2012-05-01 20:24 6783作者:赵磊 博客:http://elf8848.ite ... -
Java日志方案概述
2012-04-29 18:33 4944日志解决方案 ... -
Map的线程安全与否的相关文章
2010-05-20 22:09 3311为什么HashMap不是线程安全的?哪里不安全?不安全产生什 ... -
Map.Entry 类使用简介
2009-09-17 15:46 14643如何简便的遍历Map 你是否已经对每次从Map中取得关键字然 ... -
嵌套删除多级目录, 删除单级目录, 创建多级目录, 复制文件
2009-02-25 17:53 3465备一份自己用: /** * 嵌套删除多级目录 * ... -
截取中英文混合的字符串, 保留前面N个字符 ,抛弃被截断的汉字
2009-02-25 17:47 5000备一份自己用: /** * 截取中英文混合的字符串, 保留 ...
相关推荐
Java Annotation,也称为注解,是Java编程语言中的一种元数据机制,自JDK 5.0开始引入。注解提供了在源代码中嵌入元数据的能力,这些元数据可以被编译器、构建工具或者运行时环境用来处理代码。它们在代码中看起来...
本文将从JDK源注释出发,深入解析三种核心注释类型:`@SuppressWarnings`、`@Deprecated`以及`@Override`,并探讨自定义注解的创建与应用。 #### 1. `@SuppressWarnings` `@SuppressWarnings`注解用于抑制编译器的...
Java 1.5 引入了一种新的元编程机制——注解(Annotation),极大地增强了代码的可读性和可维护性。注解是一种在代码中添加元数据的方式,它允许程序员在源代码上添加一些信息,这些信息可以被编译器或运行时环境...
分类大致分为三类:自定义注解、JDK 内置注解、还有第三方框架提供的注解。自定义注解就是我们自己写的注解,而 JDK 内置注解则包括 `@Override`、`@Deprecated` 等。第三方框架定义的注解则包括 SpringMVC 的 `@...
在Java编程语言中,JDK 1.5引入了一项重要的新特性——注释(Annotations),这是一种元数据,用于提供程序元素(如类、方法、变量等)的附加信息。这些信息可以被编译器、IDE或其他工具用来验证代码、生成代码、...
1. 自定义注解语法:自定义注解的成员变量类型有限制,只能是原始类型、String、Class、Annotation和枚举。可以设置默认值,若只有一个成员,推荐使用`value()`方法。注解成员必须无参且无异常声明。 2. 元注解应用...
实际上,自定义注解类型自动继承了java.lang.annotation.Annotation接口,这是所有注解的最终接口。在定义注解时,不能继承其他注解类型或接口。自定义注解的成员变量可以通过默认值来初始化,其中使用“default”...
Java注解,也称为Annotation,是自JDK 5.0版本起引入的一种元数据机制,它为程序提供了额外的信息,这些信息可以在编译时或运行时被解析和使用。元数据是描述数据的数据,注解就是一种特殊的数据类型,可以用于修饰...
Java注解(Annotation)是自JDK5开始引入的一种元数据机制,它为代码提供了额外的信息,这些信息可以被编译器、IDE工具或运行时环境读取并执行相应的处理。注解并不是为了人类阅读,而是为了程序理解和处理。尽管...
在Java开发中,注解(Annotation)是一种元数据,它提供了在代码中嵌入信息的方式,这些信息可以被编译器或运行时环境用来执行各种任务。本Demo着重讲解如何利用 Annotation Processing Tool(APT) 在编译期间处理...
Java注解,也称为注释或标注,是自JDK 1.5版本引入的一种元数据机制,旨在增强代码的可读性和可维护性。它们能够应用于包、类、接口、字段、方法参数以及局部变量等多个层面,为代码提供额外的信息。注解的主要功能...
Java 注解(Annotation)是 JDK 5.0 及以后版本引入的一个特性。它是一个新的类型,与接口类似,位于同一个层次,称为 Java 的一个类型(TYPE)。注解可以声明在包、类、字段、方法、局部变量、方法参数等的前面,...
我们有必要对JDK 5.0新增的注解(Annotation)技术进行简单的学习,因为Spring 支持@AspectJ,而@AspectJ本身是基于JDK 5.0的注解技术。所以学习JDK 5.0的注解知识有助于我们更好地理解和掌握Spring的AOP技术。 ...
Java注解(Annotation)是自JDK 5.0版本起引入的一种元数据,它为程序提供了附加信息,但并不直接影响程序的运行。注解的主要目的是为了帮助编译器、构建工具、IDE或其他软件工具更好地理解和处理代码。注解与普通的...
Java注解在JDK 5.0版本被引入,它允许开发者为程序元素(如类、方法、变量等)添加注释信息,而这些信息将被编译器或者其他工具使用。注解通过使用@interface关键字来声明。元注解是用于注解注解的注解,常见的元...
Eclipse(Spring Tool Suite, STS)是一款广泛使用的Java集成开发环境,而Lombok则是一个流行的Java库,它通过注解的方式简化了Java代码,比如自动处理getter、setter、构造函数等。在Eclipse或STS中安装Lombok插件...
从JDK5开始,Java引入了一个重要的特性——元数据支持,即注解。这是一项强大的功能,它允许开发者在不改变原有代码逻辑的情况下向源代码中添加额外的信息。注解在代码中表现为特殊的标记,这些标记可以在编译阶段、...
无论是在JDK还是框架中,注解都是很重要的一部分,我们使用过很多注解,但是你有真正去了解过他的实现原理么?你有去自己写过注解么? 一、相关 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及...