程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> Java EE 6核心特征:Bean Validation特性概述(1)

Java EE 6核心特征:Bean Validation特性概述(1)

編輯:J2EE

Java EE 6 提出了 Bean Validation 規范,使用注解的方式對 Java Bean 進行約束驗證,不局限於某一層次或者某一編程模型,靈活易用。下邊將向您系統的介紹該規范的各種特性。

概述 Bean Validation 規范

Bean 是 Java Bean 的縮寫,在 Java 分層架構的實際應用中,從表示層到持久化層,每一層都需要對 Java Bean 進行業務符合性驗證,如圖 1 所示。然而對於同一個 Java Bean 的對象,在每一層都需要實現同樣的驗證邏輯時,這將是一項耗時且容易誘發錯誤的做法。Bean Validation 規范的目標就是避免多層驗證的重復性。事實上,開發者更傾向於將驗證規則直接放到 Java Bean 本身,使用注解的方式進行驗證規則的設計。

Java 分層驗證結構示意圖

圖 1. Java 分層驗證結構示意圖

JSR303 規范(Bean Validation 規范)提供了對 Java EE 和 Java SE 中的 Java Bean 進行驗證的方式。該規范主要使用注解的方式來實現對 Java Bean 的驗證功能,並且這種方式會覆蓋使用 XML 形式的驗證描述符,從而使驗證邏輯從業務代碼中分離出來,如圖 2 所示。

Java Bean 驗證模型示意圖

圖 2. Java Bean 驗證模型示意圖

JSR303 規范提供的 API 是 Java Bean 對象模型的一般擴展,它並不局限於某一層或者某一編程模型,在服務器端和客戶端都可使用,其最大的特點就是易用而且靈活。

Hibernate Validator4.0 是 JSR303 規范的參考實現之一,本文所有示例代碼均使用該參考實現。

下面給出一個 Bean Validation 的簡單示例(清單 1):

清單 1:

  1. public class Employee {
  2. @NotNull(message = "The id of employee can not be null")
  3. private Integer id;
  4. @NotNull(message = "The name of employee can not be null")
  5. @Size(min = 1,max = 10,message="The size of employee's name must between 1 and 10")
  6. private String name;
  7. public int getId() {
  8. return id;
  9. }
  10. public void setId(int id) {
  11. this.id = id;
  12. }
  13. public String getName() {
  14. return name;
  15. }
  16. public void setName(String name) {
  17. this.name = name;
  18. }
  19. public static void main(String[] args) {
  20. Employee employee = new Employee();
  21. employee.setName("Zhang Guan Nan");
  22. ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
  23. Validator validator = vf.getValidator();
  24. Set> set = validator.validate(employee);
  25. for (ConstraintViolation constraintViolation : set) {
  26. System.out.println(constraintViolation.getMessage());
  27. }
  28. }
  29. }

運行該示例的輸出結果為:

  1. The size of employee's name must between 1 and 10
  2. The id of employee can not be null

從示例中可以看出,Bean Validation 使用注解(@NotNull 和 @Size)的方式對字段 id 和 name 進行了約束聲明,當該 Java Bean 被實際使用時,相關的驗證器就會對該類的實例進行驗證確保其符合該約束聲明。完成 Java Bean 的驗證通常可分為如下四個步驟:

1. 約束注解的定義

2. 約束驗證規則(約束驗證器)

3. 約束注解的聲明

4. 約束驗證流程

本文第二大部分將詳細介紹約束注解的定義和約束驗證規則;第三大部分將詳細介紹約束注解的聲明和約束驗證流程;第四大部分將介紹 JSR303 規范提供的 API。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved