- Source: Bean Validation
Bean Validation defines a metadata model and API for JavaBean validation. The metadata source is annotations, with the ability to override and extend the meta-data through the use of XML validation descriptors.
Originally defined as part of Java EE, version 2 aims to work in Java SE apps as well.
Java Bean Validation (JSR 303) originated as a framework that was approved by the JCP as of 16 November 2009 and accepted as part of the Java EE 6 specification. The Hibernate team provides with Hibernate Validator the reference implementation of Bean Validation and also created the Bean Validation TCK any implementation of JSR 303 needs to pass.
Current Version
Bean Validation 2.0 is defined by JSR 380, approved 2017-07-31. This major release leverages language features in Java 8 that are very useful for the purposes of Bean Validation. So Java 8 is required as the minimum Java version.
Other changes include:
Support for validating container elements by annotating type arguments of parameterized types, e.g. List<@Positive Integer> positiveNumbers; this also includes:
More flexible cascaded validation of collection types; e.g. values and keys of maps can be validated now: Map<@Valid CustomerType, @Valid Customer> customersByType
Support for java.util.Optional
Support for the property types declared by JavaFX
Support for custom container types by plugging in additional value extractors
Support for the new date/time data types for @Past and @Future; fine-grained control over the current time and time zone used for validation
New built-in constraints: @Email, @NotEmpty, @NotBlank, @Positive, @PositiveOrZero, @Negative, @NegativeOrZero, @PastOrPresent and @FutureOrPresent
All built-in constraints are marked as repeatable now
Parameter names are retrieved using reflection
ConstraintValidator#initialize() is a default method
The namespace for Bean Validation XML descriptors has been changed to http://xmlns.jcp.org/xml/ns/validation/configuration for META- INF/validation.xml and http://xmlns.jcp.org/xml/ns/validation/mapping for constraint mapping files
Previous Version
Bean Validation 1.1 (JSR 349) improves upon the initial version 1.0 (JSR 303). Significant changes include:
Validation of method arguments and return value
Dependency Injection
More open process in developing the specification
Final release of the 1.1 specification occurred 2013-05-24.
References
Further reading
Official website Open development work of JSR 303, 349, & 380
Video of presentation at Devoxx, *Bean Validation 2.0 - you’ve put your annotations everywhere! by Gunnar Morling*
Interview with Spec Lead Emmanuel Bernard
JSR 303 Page
Hibernate Validator
Bean Validation TCK documentation
How to run the Bean Validation TCK Archived 2010-08-25 at the Wayback Machine
Kata Kunci Pencarian:
- Gliese 436
- Bean Validation
- Jakarta EE
- NetBeans
- Comparison of server-side web frameworks
- Jakarta Faces
- Lupin bean
- Hibernate (framework)
- Java Community Process
- Apache Tapestry
- GlassFish