อ่าน 2 นาที
การตรวจสอบความถูกต้องของ Bean
Bean Validation กำหนดโมเดลเมตาเดตาและ API สำหรับ การตรวจสอบความถูกต้อง ของ JavaBean แหล่งข้อมูลเมตาเดตาคือ แอนโนเทชัน...
การตรวจสอบความถูกต้องของ Bean
Bean Validation กำหนดโมเดลเมตาเดตาและ API สำหรับ การตรวจสอบความถูกต้อง ของ JavaBeanแหล่งข้อมูลเมตาเดตาคือแอนโนเทชันโดยมีความสามารถในการแทนที่และขยายเมตาเดตาผ่านการใช้ตัวอธิบายการตรวจสอบความถูกต้อง XML
เดิมทีถูกกำหนดให้เป็นส่วนหนึ่งของJava EEแต่เวอร์ชัน 2 มีเป้าหมายที่จะใช้งานได้ใน แอปพลิเคชัน Java SEด้วยเช่นกัน
Java Bean Validation ( JSR 303 ) มีต้นกำเนิดมาจากกรอบการทำงานที่ได้รับการอนุมัติจากJCPเมื่อวันที่ 16 พฤศจิกายน 2009 และได้รับการยอมรับว่าเป็นส่วนหนึ่งของ ข้อกำหนด Java EE 6 ทีม Hibernateได้จัดเตรียมHibernate Validatorซึ่งเป็นตัวอย่างการใช้งาน Bean Validation และยังได้สร้าง Bean Validation TCKซึ่งการใช้งาน JSR 303 ใดๆ ก็ตามต้องผ่านการทดสอบนี้ด้วย
เวอร์ชันปัจจุบัน
Bean Validation 2.0 ถูกกำหนดโดยJSR 380ซึ่งได้รับการอนุมัติเมื่อวันที่ 31 กรกฎาคม 2017 เวอร์ชันหลักนี้ใช้ประโยชน์จากคุณสมบัติของภาษาใน Java 8 ซึ่งมีประโยชน์อย่างมากสำหรับการตรวจสอบความถูกต้องของ Bean Validation ดังนั้น Java 8 จึงเป็นเวอร์ชัน Java ขั้นต่ำที่จำเป็น
การเปลี่ยนแปลงอื่นๆ ได้แก่:
- รองรับการตรวจสอบความถูกต้องขององค์ประกอบคอนเทนเนอร์โดยการระบุประเภทของอาร์กิวเมนต์ของประเภทที่มีพารามิเตอร์ เช่น List<@Positive Integer> positiveNumbers ซึ่งรวมถึง:
- การตรวจสอบความถูกต้องแบบเรียงลำดับที่ยืดหยุ่นมากขึ้นสำหรับประเภทคอลเลกชัน เช่น ตอนนี้สามารถตรวจสอบความถูกต้องของค่าและคีย์ของแผนที่ได้แล้ว: Map<@Valid CustomerType, @Valid Customer> customersByType
- การสนับสนุนสำหรับ java.util.Optional
- รองรับประเภทคุณสมบัติที่ประกาศโดยJavaFX
- รองรับประเภทคอนเทนเนอร์แบบกำหนดเองโดยการเสียบตัวแยกค่าเพิ่มเติม
- รองรับประเภทข้อมูลวันที่/เวลาใหม่สำหรับ @Past และ @Future; ควบคุมเวลาปัจจุบันและเขตเวลาที่ใช้ในการตรวจสอบความถูกต้องได้อย่างละเอียด
- ข้อจำกัดใหม่ที่สร้างมาในตัว: @Email, @NotEmpty, @NotBlank, @Positive, @PositiveOrZero, @Negative, @NegativeOrZero, @PastOrPresent และ @FutureOrPresent
- ข้อจำกัดในตัวทั้งหมดถูกทำเครื่องหมายว่าสามารถทำซ้ำได้แล้ว
- ชื่อพารามิเตอร์จะถูกดึงมาโดยใช้การสะท้อน (reflection)
- ConstraintValidator#initialize() เป็นเมธอดเริ่มต้น
- เนมสเปซสำหรับคำอธิบาย XML ของ Bean Validation ได้ถูกเปลี่ยนเป็นhttp://xmlns.jcp.org/xml/ns/validation/configurationสำหรับ META-INF/validation.xml และhttp://xmlns.jcp.org/xml/ns/validation/mappingสำหรับไฟล์การแมปข้อจำกัด
เวอร์ชันก่อนหน้า
Bean Validation 1.1 ( JSR 349 ) ปรับปรุงจากเวอร์ชันเริ่มต้น 1.0 ( JSR 303 ) การเปลี่ยนแปลงที่สำคัญ[ 1 ]ได้แก่:
- การตรวจสอบความถูกต้องของอาร์กิวเมนต์และค่าส่งคืนของเมธอด
- การฉีดการพึ่งพา (Dependency Injection)
- กระบวนการที่เปิดกว้างมากขึ้นในการพัฒนารายละเอียดเฉพาะ
ข้อกำหนดเวอร์ชัน 1.1 ฉบับสุดท้ายได้รับการเผยแพร่เมื่อวันที่ 24 พฤษภาคม 2556
อ่านเพิ่มเติม
- เว็บไซต์อย่างเป็นทางการ
เปิดเผยผลงานการพัฒนาของ JSR 303, 349 และ 380 - วิดีโอการนำเสนอในงาน Devoxx หัวข้อ *Bean Validation 2.0 - คุณใส่คำอธิบายประกอบไว้ทุกที่แล้ว! โดย Gunnar Morling*
- บทสัมภาษณ์กับ เอ็มมานูเอล เบอร์นาร์ด หัวหน้าทีมออกแบบ
- หน้า JSR 303
- ตัวตรวจสอบ Hibernate
- เอกสารประกอบการตรวจสอบความถูกต้องของ Bean TCK
- วิธีเรียกใช้ Bean Validation TCK ( เก็บถาวรเมื่อ 25 สิงหาคม 2010 ที่Wayback Machine)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การตรวจสอบความถูกต้องของ Bean
Bean Validation กำหนดโมเดลเมตาเดตาและ API สำหรับ การตรวจสอบความถูกต้อง ของ JavaBean แหล่งข้อมูลเมตาเดตาคือ แอนโนเทชัน...
เวอร์ชันปัจจุบัน
Bean Validation 2.0 ถูกกำหนดโดยJSR 380ซึ่งได้รับการอนุมัติเมื่อวันที่ 31 กรกฎาคม 2017 เวอร์ชันหลักนี้ใช้ประโยชน์จากคุณสมบัติของภาษาใน Java 8 ซึ่งมีประโยชน์อย่างมากสำหรับการตรวจสอบความถูกต้องของ Bean Validation ดังนั้น Java 8 จึงเป็นเวอร์ชัน Java...
เวอร์ชันก่อนหน้า
Bean Validation 1.1 ( JSR 349 ) ปรับปรุงจากเวอร์ชันเริ่มต้น 1.0 ( JSR 303 ) การเปลี่ยนแปลงที่สำคัญ [ 1 ] ได้แก่:
อ่านเพิ่มเติม
เว็บไซต์อย่างเป็นทางการ เปิดเผยผลงานการพัฒนาของ JSR 303, 349 และ 380 วิดีโอการนำเสนอในงาน Devoxx หัวข้อ *Bean Validation 2.0 - คุณใส่คำอธิบายประกอบไว้ทุกที่แล้ว!