attilax.java 注解的本质and 使用最佳实践(3)O7

attilax.java 注解的本质and 使用最佳实践(3)O7

1. 定义pojo 1

2. 建立注解By eclipse tps 1

3. 注解参数的可支持数据类型: 2

4. 注解处理器 2

5. 读取注解 2

6. 不能读取到注解,为null的解决 3

7. 参考: 3

1. 定义pojo

public class pojo {

@Validate("required")

String name;

int id;

@Validate("required")

String email;

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected]

转载请注明来源: http://blog.csdn.net/attilax

2. 建立注解By eclipse tps

import java.lang.annotation.Inherited;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

/**

* from tapestry5

* @author Administrator

*

*/

@Retention(RetentionPolicy.RUNTIME)

@Inherited

public @interface Validate {

// java.lang.annotation.Retention

String value();

}

3.  注解参数的可支持数据类型:

    1.所有基本数据类型(int,float,boolean,byte,double,char,long,short)

    2.String类型

    3.Class类型

    4.enum类型

    5.Annotation类型

    6.以上所有类型的数组

4. 注解处理器

就是通过反射机制获取被检查方法上的注解信息,然后根据注解元素的值进行特定的处理。

多资料都提到 APT ,或者 AbstractProcessor 。但事实上,我的理解是 APT 或者 AbstractProcessor 更多的用于:在非运行时进行增强处理(如:分析逻辑 BUG ,分析代码结构等等)。

5. 读取注解

Field[] flds = pojo.class.getDeclaredFields();

for (Field field : flds) {

System.out.println(field.getName());

Validate vld = field.getAnnotation(Validate.class);

if (vld != null) {

System.out.println(vld);

System.out.println(vld.value());

}

}

>>>>>>>

name

@com.attilax.anno.Validate(value=required)

required

id

email

@com.attilax.anno.Validate(value=required)

required

6. 不能读取到注解,为null的解决

添加@Retention(RetentionPolicy.RUNTIME)

通知:eclipse4.3不能自动提示导入这个类.只好手动import

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

1.1、@Retention: 定义注解的保留策略

@Retention(RetentionPolicy.CLASS)     // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,

@Retention(RetentionPolicy.RUNTIME)  // 注解会在class字节码文件中存在,在运行时可以通过反射获取到

7. 参考:

paip.Java Annotation注解的作用and 使用 - attilax的专栏 - 博客频道 - CSDN.NET.htm

paip.java 注解的详细使用代码 - attilax的专栏 - 博客频道 - CSDN.NET.htm

java自定义注解 - 茄子_2008 - 博客园.htm (detail api)

深入理解Java:注解(Annotation)自定义注解入门 - peida - 博客园.htm  (api)

attilax.java 注解的本质and 使用最佳实践(3)O7

时间: 2024-10-06 12:36:45

attilax.java 注解的本质and 使用最佳实践(3)O7的相关文章

【转】Java中关于异常处理的十个最佳实践

原文地址:http://www.searchsoa.com.cn/showcontent_71960.htm 导读:异常处理是书写强健Java应用的一个重要部分,Java许你创建新的异常,并通过使用 throw 和 throws关键字抛出它们. 异常处理是书写强健Java应用的一个重要部分,它是关乎每个应用的一个非功能性需求,是为了优雅的处理任何错误状况,比如资源不可访问,非法输入,空输入等等.Java提供了几个异常处理特性,以try,catch和 finally 关键字的形式内建于语言自身之中

atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7

1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传,避免一次使用内存使用过大的 2 2. Uuid还是原来文件名称:: 2 3. 监听器频繁地被调用 2 4. 结合wz easyui 2 4. 选型 2 5. Uploadify::yash js+flash 3 6. commons-fileupload:: 3 7. COS这个工具O'Reilly公司 3 8. 大的文件上传组件总结 3 5. 林吧实现ui Ajax+jq

atitit.基于http json api 接口设计 最佳实践 总结o7

atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::serverand android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通參数 meth,param, 2 2.2. 全部的參数定义 2 2.3. key,dynami key)韩式 static key? 2 2.4. 防篡改 sign 2 2.5. Encry加密 3 2.6. zip压缩:: 3 2.7. 首先压缩韩式加密??? 3 3. 选型大全:rim ,ws, http 

Java日志体系(八)最佳实践

java常用日志框架关系 Log4j 2与Log4j 1发生了很大的变化,Log4j 2不兼容Log4j 1. Logback必须配合Slf4j使用.由于Logback和Slf4j是同一个作者,其兼容性不言而喻. 比较常用的组合使用方式是Slf4j与Logback组合使用,Commons Logging与Log4j组合使用. 项目中选择日志框架选择 如果是在一个新的项目中建议使用Slf4j与Logback组合,这样有如下的几个优点. Slf4j实现机制决定Slf4j限制较少,使用范围更广.由于S

java注解及在butternife中的实践和原理

1.  背景 之前去一个公司,说到了java的注解,问java的注解有几种方式,然后我提到了android中的butternife和afinal注解工具,我们知道butternife在6.1版本的时候还是InjectView,可以到7.1的时候用的却是BInd,这里面有什么区别吗.简单的说,InjectView是在运行的时间进行注解,而BInd在android安装的时候就执行了,肯定后者的执行效率更高些. 接下来说说java的注解吧. 2.  什么是注解 我们有必要对JDK 5.0新增的注解(A

挑战高薪必看:《深入理解java虚拟机 jvm高级特性与最佳实践》

Java是目前用户最多.使用范围最广的软件开发技术之一.Java 的技术体系主要由支撑 Java程序运行的虚拟机.提供各开发领域接口支持的Java API.Java 编程语言及许多第三方 Java框架(如Spring.Struts 等)构成.在国内,有关Java API.Java语言语法及第三方框 架的技术资料和书籍非常丰富,相比之下,有关Java虚拟机的资料却显得异常贫乏. 资料获取方法 内容特色 第一部分走近 Java 本书的第部分为后文的讲解建立了良好的基础.尽管了解Java技术的来龙去脉

《深入理解Java虚拟机:JVM高级特性与最佳实践》学习笔记 Ⅲ 虚拟机执行子系统

第三部分 虚拟机执行子系统第6章 类文件结构//实现语言无关性的基础仍然是虚拟机和字节码存储格式,使用Java编译器可以把Java代码编译为存储字节码的Class文件,使用JRuby等其他语言的编译器一样可以把程序代码编译成Class文件,虚拟机并不关心Class的来源是什么语言,只要它符合Class文件应有的结构就可以在Java虚拟机中运行.1.Class类文件的结构Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件之中,中间没有分隔符.Cl

Java异常处理的10个最佳实践

本文作者: ImportNew - 挖坑的张师傅 未经许可,禁止转载! 异常处理在编写健壮的 Java 应用中扮演着非常重要的角色.异常处理并不是功能性需求,它需要优雅地处理任何错误情况,比如资源不可用.非法的输入.null 输入等等.Java 提供很多异常处理特性,通过内置的 try.catch.finally关键字实现.Java 同样允许创建新的异常和使用 throw 和 throws 抛出该异常.在实践中,异常处理不单单是知道语法这么简单.编写健壮的代码更像是一种艺术,而不是一门科学,在接

深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)PDF下载

网盘下载地址:深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)PDF下载 – 易分享电子书PDF资源网 作者: 周志明 出版社: 机械工业出版社 副标题: JVM高级特性与最佳实践 出版年: 2013-9-1 页数: 433 定价: 79.00元 装帧: 平装 内容简介 · · · · · · <深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)>内容简介:第1版两年内印刷近10次,4家网上书店的评论近4?000条,98%以上的评论全部为5星级的好评,是整个Java图书领域公