¿Hay una implementación de JSR-303 (validación de beans) disponible?

Sé que hay marcos no estándar como el validador de recursos comunes y el validador de hibernación.

Quería saber si alguien conoce una implementación del estándar oficial.

Hibernate Validator es la implementación de referencia de JSR-303

Hay 2 implementaciones compatibles ahora:

  • Apache Bean Validation (anteriormente agimatec)
  • Validador de Hibernate

Puede acceder a un punto de referencia y una descripción rápida de ambos aquí: http://carinae.net/2010/06/benchmarking-hibernate-validator-and-apache-beanvalidation-the-two-jsr-303-implementations/

Implementaciones:

  • agimatec-validación
  • Validador de Hibernate

OVaL no es un validador JSR-303, pero puede convertir las restricciones jsr303 en las suyas.

Spring Framework se convirtió en JSR303 compatible a partir de la versión 3 en adelante, creo.

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html#validation-beanvalidation

Spring Framework 4.0 es compatible con Bean Validation 1.0 (JSR-303) y Bean Validation 1.1 (JSR-349) en términos de soporte de configuración, y también lo adapta a la interfaz de Spring’s Validator.

En cuanto al verano de 2018, hay tres especificaciones que se suplantaron entre sí:

  • JSR 380 (Validación de Bean 2.0)
  • JSR 349 ​​(Validación de Bean 1.1)
  • JSR 303 (Validación de Bean 1.0)

Puede consultar el sitio oficial para más detalles.

Hibernate Validator 6.10 es una implementación de referencia del más nuevo (380). Tiene una gran documentación que recomendaría echar un vistazo (sin embargo, es bastante grande).

Los documentos de la plataforma CUBA podrían darle una comprensión mucho más corta del tema si necesita una introducción rápida. CUBA framework está basado en Spring y EclipseLink, por lo que las cosas que has aprendido podrían usarse en proyectos regulares de Spring + Hibernate también 🙂

El JSR 349 ​​es compatible con versiones anteriores de Hibernate Validator y de Apache BVal , ambos son “oficiales”.

Desde ORM que no sean Hibernate, EclipseLink es compatible con JSR 349 ​​y puede utilizar la interfaz Validator proporcionada por HV.

Si es posible, recomendaría no usar la versión anterior (JSR 303), pero cambiar a 349 o 380 especificaciones. Son bastante más maduros y ricos.

Bean Validation podría usarse en el proyecto incluso si no hay ORM en él, por ejemplo, puede usarlo en sus aplicaciones Java 2SE o Android (consulte este artículo ), sin embargo, este no es el enfoque para el que Bean Validation fue diseñado como una cosa principal . Aunque es posible utilizar estos validadores (HV y BVal) solo (tendría que crear instancias y llamar Validator y ExecutableValidator manualmente), realmente brillarán trabajando junto con frameworks como Hibernate, Spring o CUBA.