- 浏览: 367540 次
- 性别:
- 来自: 阿里巴巴
文章分类
- 全部博客 (207)
- Maven (5)
- Cassandra (2)
- Hadoop (3)
- LDAP (2)
- SOA (7)
- 认证、加密、安全 (6)
- 搜索引擎相关技术 (3)
- REST (7)
- 数据库 (11)
- Java 基础相关 (38)
- UML (1)
- Java NIO 框架 (3)
- javassist (1)
- Bean容器 (4)
- 网络编程 (1)
- NoSQL (4)
- XML、Json (1)
- JS (2)
- Google (6)
- Warp-MVC (2)
- 持久层 (2)
- sitebricks (1)
- MVC (6)
- CSS (2)
- JPA (2)
- RDBMS (5)
- cache (4)
- tomcat (1)
- 其它 (3)
- eclipse (1)
- bigpipe (1)
- RDBMS MySQL (1)
- MySQL (2)
- ant (1)
- 前端 (2)
- Groovy (1)
- linux (3)
- Scala (1)
- zookeeper (1)
- redis (2)
- 测试 (1)
- 监控 (1)
- mac (3)
- 区块链 (3)
- 工具 (1)
最新评论
-
masuweng:
好好好,辛苦了!!
Spring Data JPA 简单介绍 -
masuweng:
Spring Data JPA 简单介绍 -
zhangjianxinjava:
您好,大神本人小白一个最近在研究不知道可否 通过邮箱进行交流, ...
JAVA Metrics度量工具 - Metrics Core -
xzs603:
http://zhengdl126.iteye.com/blo ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
JavaStart:
运行mysql2redis 的install.sh 文件为何提 ...
mysql到redis的复制
文章分类:Java编程
【51CTO精选译文】对于Sun最新发布的Java EE 6平台,过去51CTO已经陆续介绍了平台的主要目标,以及三大新技术中的JAX-RS以及上下文和依赖注入。本文介绍第三个技术:Bean验证。
验证数据是应用程序生命周期中一个常见的任务,例如,在应用程序的表示层,你可能想验证用户在文本框中输入的字符数最多不超过20个,或者想验证用户在数字字段输入的字符只能是数字。
开发人员在应用程序的各层中通常使用相同的验证逻辑,或者将验证逻辑放在数据模型中。
Bean验证(JSR 303)使验证变得更简单了,减少了重复,错误和凌乱,Bean验证提供了一个标准的验证框架,在框架中相同的验证集可以在应用程序的所有层之间共享。
Bean验证提供了一个框架验证遵循JavaBean规范编写的Java类,你可以使用注解指定一个JavaBean上的约束,你可以注解一个 JavaBean类、字段或属性,你也可以通过XML描述符扩展或覆盖这些约束,验证类验证每个约束时,你要指定那个验证类用于给定的约束类型。
例如,下面是通过Bean验证注解声明一些约束的类的一部分代码:
1. public class Address {
2. @NotNull @Size(max=30)
3. private String addressline1;
4.
5. @Size(max=30)
6. private String addressline2;
7.
8. ...
9.
10. public String getAddressline1() {
11. return addressline1;
12. }
13.
14. public void setAddressline1(String addressline1) {
15. this.addressline1 = addressline1;
16. }
17.
18. ...
19. }
20.
@NotNull注解指定了注解元素addressline1绝不能为空,@Size注解指定注解元素addressline1和addressline2决不能大于指定的长度(30个字符)。
验证Address对象时,addressline1的值传递给为@NotNull约束定义的验证类,同时还要传递给为@Size约束定义的验证类,addressline2的值也要传递给为@Size约束定义的验证类。
51CTO编辑推荐:Java EE 6平台指南
@NotNull 和@Size约束内置于Bean验证框架中,因此你不需要为它们定义验证类,但你可以在内置约束上添加自己的约束,那时就需要定义自己的验证类了。例如,你可以定义如下的@ZipCode约束:
1. @Size(min=5, max=5)
2. @ConstraintValidator(ZipcodeValidator.class)
3. @Documented
4. @Target({ANNOTATION_TYPE, METHOD, FIELD})
5. @Retention(RUNTIME)
6. public @interface ZipCode {
7. String message() default "Wrong zipcode";
8. String[] groups() default {};
9. }
然后你可以在类、字段或属性上象其它约束定义那样定义@ZipCode约束,如:
1. public class Address {
2. ...
3.
4. @ZipCode
5. private String addressline 3;
6.
7. public String getZipCode() {
8. return zipCode;
9. }
10.
11. public void setZipCode(String zipCode) {
12. this.zipCode = zipCode;
13. }
14.
15. ...
16. }
17.
* 从Java EE 6最终草案看Java企业级开发的..
* Java EE 6总览:平台的主要目标
* Java EE 6引入的三大新技术之JAX-RS
* 面向Java EE 6平台的上下文和依赖性注入
* 九大因素让Java EE 6成为你的省钱法宝
Address对象验证后,addressline3的值传递给ZipcodeValidator类进行验证,注意约束定义包括另一个约束:@Size(min=5, max=5),这意味着由@ZipCode注解注解的元素必须恰好是5个字符,除了执行ZipcodeValidator进行主要的约束检查外,需要再次使用这个约束对元素进行验证。Bean验证允许你创建一个由其它约束组成的约束,还要注意约束定义了一个错误消息,如果验证检查约束失败就返回这个错误消息,这里的错误消息是“Wrong zipcode”。
你也可以使用Bean验证验证一个完整的对象图(object graph),一个对象图是由其它对象组成的一个对象,如果你在对象图的根对象上指定@Valid注解,它会指引相关的验证器递归验证对象图中的关联对象,如:
1. public class Order {
2. @OrderNumber private String orderNumber;
3. @Valid @NotNull private Address delivery;
4. }
5.
Order对象验证后,Address对象和对象图中关联的对象也被验证。
为了满足在应用程序各层之间共享相同的验证集,Java EE 6平台整合了Bean验证。例如,表示层技术,如JSF,以及企业级技术,如JPA,都可以通过Bean验证框架访问约束定义和验证器,你不再需要在多个地方指定约束。
验证数据是应用程序生命周期中一个常见的任务,例如,在应用程序的表示层,你可能想验证用户在文本框中输入的字符数最多不超过20个,或者想验证用户在数字字段输入的字符只能是数字。
开发人员在应用程序的各层中通常使用相同的验证逻辑,或者将验证逻辑放在数据模型中。
Bean验证(JSR 303)使验证变得更简单了,减少了重复,错误和凌乱,Bean验证提供了一个标准的验证框架,在框架中相同的验证集可以在应用程序的所有层之间共享。
Bean验证提供了一个框架验证遵循JavaBean规范编写的Java类,你可以使用注解指定一个JavaBean上的约束,你可以注解一个 JavaBean类、字段或属性,你也可以通过XML描述符扩展或覆盖这些约束,验证类验证每个约束时,你要指定那个验证类用于给定的约束类型。
例如,下面是通过Bean验证注解声明一些约束的类的一部分代码:
1. public class Address {
2. @NotNull @Size(max=30)
3. private String addressline1;
4.
5. @Size(max=30)
6. private String addressline2;
7.
8. ...
9.
10. public String getAddressline1() {
11. return addressline1;
12. }
13.
14. public void setAddressline1(String addressline1) {
15. this.addressline1 = addressline1;
16. }
17.
18. ...
19. }
20.
@NotNull注解指定了注解元素addressline1绝不能为空,@Size注解指定注解元素addressline1和addressline2决不能大于指定的长度(30个字符)。
验证Address对象时,addressline1的值传递给为@NotNull约束定义的验证类,同时还要传递给为@Size约束定义的验证类,addressline2的值也要传递给为@Size约束定义的验证类。
51CTO编辑推荐:Java EE 6平台指南
@NotNull 和@Size约束内置于Bean验证框架中,因此你不需要为它们定义验证类,但你可以在内置约束上添加自己的约束,那时就需要定义自己的验证类了。例如,你可以定义如下的@ZipCode约束:
1. @Size(min=5, max=5)
2. @ConstraintValidator(ZipcodeValidator.class)
3. @Documented
4. @Target({ANNOTATION_TYPE, METHOD, FIELD})
5. @Retention(RUNTIME)
6. public @interface ZipCode {
7. String message() default "Wrong zipcode";
8. String[] groups() default {};
9. }
然后你可以在类、字段或属性上象其它约束定义那样定义@ZipCode约束,如:
1. public class Address {
2. ...
3.
4. @ZipCode
5. private String addressline 3;
6.
7. public String getZipCode() {
8. return zipCode;
9. }
10.
11. public void setZipCode(String zipCode) {
12. this.zipCode = zipCode;
13. }
14.
15. ...
16. }
17.
* 从Java EE 6最终草案看Java企业级开发的..
* Java EE 6总览:平台的主要目标
* Java EE 6引入的三大新技术之JAX-RS
* 面向Java EE 6平台的上下文和依赖性注入
* 九大因素让Java EE 6成为你的省钱法宝
Address对象验证后,addressline3的值传递给ZipcodeValidator类进行验证,注意约束定义包括另一个约束:@Size(min=5, max=5),这意味着由@ZipCode注解注解的元素必须恰好是5个字符,除了执行ZipcodeValidator进行主要的约束检查外,需要再次使用这个约束对元素进行验证。Bean验证允许你创建一个由其它约束组成的约束,还要注意约束定义了一个错误消息,如果验证检查约束失败就返回这个错误消息,这里的错误消息是“Wrong zipcode”。
你也可以使用Bean验证验证一个完整的对象图(object graph),一个对象图是由其它对象组成的一个对象,如果你在对象图的根对象上指定@Valid注解,它会指引相关的验证器递归验证对象图中的关联对象,如:
1. public class Order {
2. @OrderNumber private String orderNumber;
3. @Valid @NotNull private Address delivery;
4. }
5.
Order对象验证后,Address对象和对象图中关联的对象也被验证。
为了满足在应用程序各层之间共享相同的验证集,Java EE 6平台整合了Bean验证。例如,表示层技术,如JSF,以及企业级技术,如JPA,都可以通过Bean验证框架访问约束定义和验证器,你不再需要在多个地方指定约束。
发表评论
-
浮点数计算
2020-08-25 16:15 330@Test public void test2() ... -
AQS、ReentrantLock、CLH锁 、MCS锁 分析
2018-12-25 23:45 6871. ReentrantLock的介绍 Reentran ... -
Java并发编程:CountDownLatch、CyclicBarrier、Semaphore、Phaser
2015-02-26 16:41 1376在java 1.5中,提供了 ... -
技术网站资料
2014-07-17 11:53 0http://javakaiyuan.com ht ... -
Java之死-前言
2014-07-15 10:14 758用了好多年的java之后越来越感觉其并不像 ... -
通过JVM获取相关的服务器信息 .
2013-01-07 20:18 2174http://blog.csdn.net/zgmzyr/art ... -
Java中使用OpenSSL生成的RSA公私钥进行数据加解密
2012-10-25 11:34 4385openssl genrsa -out rsa_pr ... -
java开源
2012-05-29 14:34 1502开源不是开放编译器的源代码,而是写了一个软 ... -
用Ant打Jar包--在Manifest中引用Classpath
2012-03-15 13:20 1596用Ant打Jar包--在Manifest ... -
分布式锁服务器
2011-11-07 22:14 1955在分布式系统中如何 ... -
Java 7 Fork/Join 并行计算框架概览
2011-11-05 16:26 1079http://www.iteye.com/topic/ ... -
Apache Jakarta Commons 工具集简介
2011-11-03 11:22 1602org.apache.commons.collectio ... -
JDBC batch批处理Statement executeBatch 详解
2011-09-28 13:25 2756http://blog.csdn.net/basene ... -
代码动态生成利器ASM
2011-09-22 20:02 1062前言 代码生成器(code generato ... -
Fastjson技术内幕
2011-09-13 23:51 1346文章来源:http://code.alibabatech.co ... -
基于Spring可扩展Schema提供自定义配置支持
2011-08-07 16:01 1238在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直 ... -
Mule 与 Spring2.0's extensible XML configuration mechanism
2011-08-07 15:50 1367mule2.2.1已经采用从sprin ... -
alibaba fastjson(json序列化器)序列化部分源码解析
2011-08-03 21:11 2028本文copy自http://www.flydmeng.co ... -
JVM 远程调试 参数
2011-07-28 09:49 1896远程调试 参数 -server -Xdebug -Xnoag ... -
Sequential Lock in Java
2011-07-03 16:22 14101 Overview Linux内核中常见的同步机制 ...
相关推荐
这个API文档提供了全面的技术规范和接口参考,是开发者理解和使用Java EE 6框架的重要参考资料。以下是该文档中包含的一些核心知识点: 1. **Servlet 3.0**:Java EE 6引入了Servlet 3.0规范,它增强了Servlet的可...
- **内容概要**:介绍了 Java EE 7 的新特性和改进之处,以及这些特性如何帮助开发者更高效地开发企业应用。 ##### 第2章:上下文与依赖注入 - **关键技术**:CDI 规范,包括 Bean 的管理、依赖注入等。 - **应用...
根据给定的文件信息,我们将深入探讨与Java EE 7教程相关的关键知识点,这将包括对Java EE平台的理解、其核心组件以及版本7所引入的新特性。 ### Java EE(Java Platform, Enterprise Edition)概述 Java EE是Java...
Java EE 7是在2013年推出的Java企业级计算平台的标准版本,它在Java EE 6的基础上做了大量的增强和改进,以适应现代云计算和大数据处理的需求。 首先,Java EE 7为开发者提供了更加模块化和轻量级的开发方式。平台...
2. **Contexts and Dependency Injection for the Java EE Platform (CDI)**:CDI是一种新的依赖注入框架,提供了一种更简单、更灵活的方式来管理和注入Java EE组件的依赖关系。它还支持事件通知和上下文管理,使得...
Java EE 6(Java Platform, Enterprise Edition 6)是Java技术在企业级应用开发中的一个里程碑,它提供了全面的框架和服务来构建分布式、基于组件的应用程序。Java EE 6 API Documentation 是官方发布的开发者指南,...
### Java EE 6 标准与规范中文版关键知识点概览 #### 一、平台概述 ...综上所述,Java EE 6 为企业级应用程序提供了一个强大且灵活的开发平台,通过引入新的特性和服务,进一步提升了Java EE的实用性和适用范围。
Java类加载器是Java虚拟机(JVM)的重要组成部分之一,主要负责在程序运行时将类文件加载到内存中,并对其进行验证、准备和解析等初始化操作。类加载器采用双亲委派模型,这种模型可以有效避免类的重复加载,同时也为...
Java EE 7(Java Platform, Enterprise Edition 7)是Java企业级应用开发的一个重要版本,它引入了许多新特性,旨在简化开发流程并提高应用性能。 - **JavaServer Faces 2.2 (JSR 344)**:提供了用于构建动态Web...
Java EE的核心特征之一是Bean Validation框架,这是Java EE 6引入的新功能。Bean Validation允许开发者通过注解在JavaBean的属性、方法或类上定义验证约束,确保数据的正确性。这些约束可以是预定义的,也可以自定义...
Java EE(Java Platform, Enterprise Edition)是Oracle公司推出的用于构建企业级Web应用程序的框架标准,它在早期被称为J2EE。这个"Java EE 5 docs.zip"文件包含了关于Java EE 5版本的完整文档,对开发者来说是一个...
Java EE(Enterprise Edition)是Java平台上用于构建企业级应用程序的标准框架和API集合。这个最新的Java EE 5版本引入了许多改进和新特性,旨在简化开发流程,提高可维护性和可扩展性。以下是对Java EE 5 API的详细...
这次大会的资料涵盖了Java EE的多个关键领域,包括全文搜索、Bean验证、Java持久化API(JPA)、JavaServer Faces(JSF)、Eclipse和NetBeans IDE工具支持、JPA映射、页面流、Spring框架以及Web技术栈选择等。...
本资源包含的是Java EE 6规范的中文版,对于学习和理解Java EE 6的技术体系有极大的帮助。 1. **平台概述**: Java EE 6旨在简化开发过程,引入了轻量级的Web Profile,针对小型企业应用提供了一个精简的配置。这...
综上所述,"Java_EE8.docset.rar"包含的文档将详细讲解这些Java EE 8的关键技术和更新,帮助开发者深入了解如何利用这些新特性构建高效、安全的企业级应用程序。通过学习和实践,开发者可以提升自己的Java EE开发...
Java EE后端开发脚手架是开发者们为了快速构建企业级应用而设计的一套框架集合。这个名为"Pragmatic风格的 Java EE 后端开发脚手架",结合了SpringBoot,为开发者提供了一个高效、简洁的开发环境。本文将深入探讨这...
6. **Bean Validation**:提供了统一的验证框架。 这两个资源对于学习和实践J2EE 1.6以及Java EE 6规范至关重要。通过深入学习这些文档,开发者可以更好地掌握企业级应用开发的关键技术和最佳实践,提高工作效率,...
Java EE 7 是该平台的一个重要里程碑,它引入了许多新特性,使得开发者能够更高效地构建大型应用。 #### 二、Java EE 7 的主要特点 ##### 1. **简化的企业级开发** - **批处理API**:Java EE 7 引入了批量处理 ...