- 浏览: 155711 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
bkk854762363:
好文章,赞
Spring3.0 + 自定义注解实现操作日志记录功能 -
怪黍叔:
学习了
Spring3.0 + 自定义注解实现操作日志记录功能 -
wellway:
请问jfreechart-1.0.11-demo.jar怎么反 ...
关于JFreeChart Demo
JDK 5 Annotation\注解\注释\自定义注解
- 博客分类:
- java基础
自定义注解示例
---------------------------------------------
@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)进行注解。
发表评论
-
子类可以继承到父类上的注解吗?
2012-11-12 17:07 7982不了解注解基础知识的请先看《JDK 5 Annotation\ ... -
Java基础知识点梳理
2012-10-16 10:50 1127... -
String考点
2012-10-08 10:37 8511.String StringBuffer StringBui ... -
抽取网页数据的不同思路
2012-09-27 18:52 0客户要求从Internet上的网页上抽取一定的数据,用来显示或 ... -
使用TransactionTemplate 编程式控制事务
2012-09-27 17:10 27902使用 TransactionTempla ... -
Java编程中的性能优化手段
2012-09-26 15:35 10151.尽量使用final修饰符。 带有final修饰符的类是不 ... -
java 异常处理
2012-09-26 15:32 9101.异常处理的流程: ① 遇到错误,方法立即结束,并不返回一个 ... -
灵活自定义缩略图片尺寸大小方案分享(nginx,lua_nginx,GraphicsMagick)
2012-07-11 12:27 3113melin 写道 在开发电子商务网站时,同一个图片需要不 ... -
jmagic 的安装与使用
2012-03-25 08:59 1651平台:winXP 1. 安装Imag ... -
单例模式
2012-03-25 08:45 1162饿汉式: package com.design.pat ... -
判断滚动条已经滚动到底部 方法收集
2011-10-17 14:17 32751.window.onscroll=function() { ... -
Spring3.0 + 自定义注解实现操作日志记录功能
2011-06-07 18:08 6326Xml代码 <aop:aspectj-autop ... -
如何在HttpServletRequest上下文环境中判断请求是同步请求还是异步请求
2011-05-05 15:01 1979在Java后台,有时候我们需要根据同步请求和异步请求做个性 ... -
跨应用程序的session共享
2010-09-30 12:36 1854常常有这样的情况,一个大项目被分割成若干小项目开发,为了能够互 ... -
Java的垃圾回收机制详解和调优
2010-09-30 11:21 9601.JVM的gc概述 gc即 ... -
sso单点登陆学习
2010-09-30 10:43 1734我对于一个新的内容学习.一般先知道其作用和特点是什么.然后从网 ... -
单点登录系统的设计与实现方案
2010-09-30 09:26 1582目的: 对目前已有的 Web 应用系统,和将来待开发的 Web ...
相关推荐
java或Java框架中常用的注解及其作用详解:Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过...
我们有必要对JDK 5.0新增的注解(Annotation)技术进行简单的学习,因为Spring 支持@AspectJ,而@AspectJ本身是基于JDK 5.0的注解技术。所以学习JDK 5.0的注解知识有助于我们更好地理解和掌握Spring的AOP技术。 ...
二、JDK中预定义的一些注解1.@Override2.@Deprecated3.@SuppressWarnings4.@SafeVarargs5.@FunctionalInterface三、自定义注解1.格式2.本质3.属性4.元注解(JDK的元Annotation)4.1.@Target4.2.@Retention4.3.@...
无论是在JDK还是框架中,注解都是很重要的一部分,我们使用过很多注解,但是你有真正去了解过他的实现原理么?你有去自己写过注解么? 一、相关 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及...
一个Maven插件,用于处理jdk8及更高版本的编译时注释。 该插件有助于从Maven使用JDK8提供的集成在Java编译器中的新注释处理 该插件是Maven apt插件的“ alter ego” 文献资料 相关插件 插入 信息 Jboss的eclipse...
方式一:Jdk5.0之前,自定义枚举类 方式二:jdk5.0之后,可以使用enum关键字定义枚举类 三、Enum类的主要方法: 四、使用enum关键字定义的枚举类实现接口的情况 栗子一:实现接口,在enum类中实现抽象方法。 栗子...
定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK5.0及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素...
一、注解(Annotation) 1.什么是注解? 相信大家对注解应该并不陌生,在现在信息飞速发展的年代,各种优秀的框架或许都离不开注解的使用,像我们在实现接口一个方法时,也会有@Override注解。注解说白了就是对程序...
枚举是一种类,注解(指的是注解Annotation)是一种接口; 每个数组都是 Class字节码类中的一个具体 对象 基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也表示...
JDK11注释处理器复制器运行复制器确保JAVA_HOME环境变量指向Java 11安装。 运行应用程序的构建: mvn clean install编译不会通过以下问题: [INFO] --------------------------------------------------------------...
当然它也支持自定义Java标注 JDK1.5之后的特征 用于说明程序 一般在框架中使用 格式: @AnnotationName 文档注释: @param @return @Exeception 从根本上是一个注释,不存在代码编译,不会生成对应的.class字节码问题...
泛型是Java SE 1.5的新特性,好处是在...注解(Annotation)是JDK1.5及以后引入的新特性,与类、接口、枚举是在同一个层次。可声明在包、类、字段、方法、局部变量、方法参数等前面,用来对这些元素进行说明,注释。
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。Java标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节...
这个Demo演示利用APT处理源文件中注解信息,而不是在运行时用反射处理 需要tools.jar位于jdk_home\lib下请自行拷贝,并修改run.bat中的classpath
注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。 内置的注解 作用在代码的注解是 @Override - 检查该方法是否是重写方法。如果发现其...
auto-string-formatter需要JDK 8(1.8.0_65或更高版本)才能运行注释处理器。 概要 只需使用@AutoStringFormatter和@Format定义一种格式,然后使用它。 package com.github.imasahiro.stringformatter.example ; ...
依赖关系主要依赖有: FasterXML 杰克逊 2.5.4 弹簧框架 4.1.5发展在 Intellij 中导入必须安装 Lombok 插件不要忘记在Preferences > Compiler > Annotation processor 中启用注解处理历史该库已从 nemerosa/ontrack ...
MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...