Bean Validation define un modelo de metadatos y una API para la validación de JavaBean . La fuente de metadatos son las anotaciones , con la capacidad de anular y ampliar los metadatos mediante el uso de descriptores de validación XML .
Originalmente definida como parte de Java EE , la versión 2 apunta a funcionar también en aplicaciones Java SE .
Java Bean Validation ( JSR 303 ) se originó como un marco que fue aprobado por el JCP el 16 de noviembre de 2009 y aceptado como parte de la especificación Java EE 6. El equipo de Hibernate proporciona con Hibernate Validator la implementación de referencia de Bean Validation y también creó el Bean Validation TCK que cualquier implementación de JSR 303 debe pasar.
Versión actual
Bean Validation 2.0 está definido por JSR 380 , aprobado el 31 de julio de 2017. Esta versión principal aprovecha las características del lenguaje en Java 8 que son muy útiles para los propósitos de la validación de Bean. Por lo tanto, se requiere Java 8 como la versión mínima de Java.
Otros cambios incluyen:
- Soporte para validar elementos de contenedor mediante la anotación de argumentos de tipo de tipos parametrizados, por ejemplo, List <@Positive Integer> PositiveNumbers; esto también incluye:
- Validación en cascada más flexible de tipos de colección; por ejemplo, los valores y las claves de los mapas se pueden validar ahora: Map <@Valid CustomerType, @Valid Customer> customersByType
- Soporte para java.util.Optional
- Soporte para los tipos de propiedad declarados por JavaFX
- Compatibilidad con tipos de contenedores personalizados mediante la incorporación de extractores de valor adicionales
- Soporte para los nuevos tipos de datos de fecha / hora para @Past y @Future; control detallado sobre la hora actual y la zona horaria utilizada para la validación
- Nuevas restricciones integradas: @Email, @NotEmpty, @NotBlank, @Positive, @PositiveOrZero, @Negative, @NegativeOrZero, @PastOrPresent y @FutureOrPresent
- Todas las restricciones integradas están marcadas como repetibles ahora
- Los nombres de los parámetros se recuperan mediante la reflexión
- ConstraintValidator # initialize () es un método predeterminado
- El espacio de nombres para los descriptores XML de validación de Bean se ha cambiado a http://xmlns.jcp.org/xml/ns/validation/configuration [ enlace muerto permanente ] para META-INF / validation.xml y http: //xmlns.jcp. org / xml / ns / validation / mapping [ enlace muerto permanente ] para archivos de asignación de restricciones
Versión previa
Bean Validation 1.1 ( JSR 349 ) mejora la versión inicial 1.0 ( JSR 303 ). Los cambios significativos [1] incluyen:
- Validación de argumentos de método y valor de retorno
- Inyección de dependencia
- Proceso más abierto en el desarrollo de la especificación
La versión final de la especificación 1.1 se produjo el 24 de mayo de 2013.
Referencias
- ^ Emmanuel, Bernard. "Objetivos de Bean Validation 1.1" . Red Hat, Inc . Consultado el 17 de agosto de 2014 .
Otras lecturas
- Página web oficial Trabajo de desarrollo abierto de JSR 303, 349 y 380
- Video de presentación en Devoxx, * Bean Validation 2.0: ¡ha puesto sus anotaciones en todas partes! por Gunnar Morling *
- Entrevista con el líder de especificaciones, Emmanuel Bernard
- Página JSR 303
- Validador de hibernación
- Documentación de Bean Validation TCK
- Cómo ejecutar Bean Validation TCK