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 pretende funcionar también en aplicaciones Java SE .
Java Bean Validation (JSR 303) se originó como un marco de trabajo 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 aprobar.
Versión actual
La validación de Bean 2.0 está definida por JSR 380, aprobada el 31 de julio de 2017. Esta versión principal aprovecha las características del lenguaje Java 8 que son muy útiles para los fines de la validación de Bean. Por lo tanto, Java 8 es la versión mínima de Java.
Otros cambios incluyen:
- Soporte para validar elementos contenedores 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, ahora se pueden validar valores y claves de mapas: Map<@Valid CustomerType, @Valid Customer> clientsByType
- Soporte para java.util.Optional
- Compatibilidad con los tipos de propiedades declarados por JavaFX
- Compatibilidad con tipos de contenedores personalizados mediante la incorporación de extractores de valores adicionales
- Compatibilidad con los nuevos tipos de datos de fecha y 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 ahora están marcadas como repetibles
- Los nombres de los parámetros se recuperan mediante 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 los archivos de mapeo de restricciones.
Versión anterior
Bean Validation 1.1 (JSR 349) mejora la versión inicial 1.0 (JSR 303). Entre los cambios significativos [1] se incluyen:
- Validación de argumentos de métodos y valor de retorno
- Inyección de dependencia
- Proceso más abierto en el desarrollo de la especificación
El lanzamiento 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. Recuperado el 17 de agosto de 2014 .
Lectura adicional
- Sitio web oficial Trabajo de desarrollo abierto de JSR 303, 349 y 380
- Vídeo de presentación en Devoxx, *Bean Validation 2.0: ¡has puesto tus anotaciones en todas partes! por Gunnar Morling*
- Entrevista con el jefe de especificaciones Emmanuel Bernard
- Página JSR 303
- Validador de Hibernate
- Documentación de TCK de validación de Bean
- Cómo ejecutar el TCK de validación de Bean Archivado el 25 de agosto de 2010 en Wayback Machine