È disponibile un’implementazione di JSR-303 (convalida del bean)?

So che ci sono framework non standard come common validator e hibernate validator.

Volevo sapere se qualcuno conosce un’implementazione dello standard ufficiale.

Hibernate Validator è l’ implementazione di riferimento di JSR-303

Ci sono 2 implementazioni conformi ora:

  • Apache Bean Validation (precedentemente agimatec)
  • Hibernate Validator

È ansible accedere a un benchmark e una breve descrizione di entrambi qui: http://carinae.net/2010/06/benchmarking-hibernate-validator-and-apache-beanvalidation-the-two-jsr-303-implementations/

implementazioni:

  • agimatec-convalida
  • Hibernate Validator

OVaL non è un validatore JSR-303, ma può convertire i vincoli jsr303 in proprio.

Spring Framework è diventato compatibile con JSR303 dalla versione 3 in poi, credo.

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

Spring Framework 4.0 supporta Bean Validation 1.0 (JSR-303) e Bean Validation 1.1 (JSR-349) in termini di supporto per l’installazione, adattandolo anche all’interfaccia di Validator di Spring.

Per quanto riguarda l’estate 2018, ci sono tre specifiche che si sono rimpiazzate:

  • JSR 380 (Bean Validation 2.0)
  • JSR 349 ​​(Bean Validation 1.1)
  • JSR 303 (Bean Validation 1.0)

Puoi consultare il sito ufficiale per maggiori dettagli.

Hibernate Validator 6.10 è un’implementazione di riferimento della più recente (380). Ha un’ottima documentazione che consiglierei di dare un’occhiata (comunque è roba abbastanza grande).

I documenti della piattaforma CUBA potrebbero darti una comprensione molto più breve dell’argomento se hai bisogno di un’introduzione veloce. Il framework CUBA si basa su Spring ed EclipseLink, quindi le cose che hai imparato potrebbero essere utilizzate anche nei normali progetti Spring + Hibernate 🙂

Il JSR 349 ​​è supportato da versioni precedenti di Hibernate Validator e Apache BVal , entrambi sono “ufficiali”.

Da ORM diversi da Hibernate, EclipseLink supporta JSR 349 ​​e può utilizzare l’interfaccia di convalida fornita da HV.

Se è ansible, ti consiglio di non utilizzare la versione precedente (JSR 303) ma passare a 349 o 380 specifiche. Sono abbastanza più maturi e ricchi.

Bean Validation può essere usato nel progetto anche se non c’è alcun ORM, ad esempio puoi usarlo per le tue app Java 2SE o Android (vedi questo articolo ), tuttavia, questo non è l’approccio Bean Validation è stato progettato come una cosa primaria . Sebbene sia ansible utilizzare questi validatori (HV e BVal) solo da soli (dovresti istanziare e chiamare manualmente Validator ed ExecutableValidator ), funzioneranno davvero bene insieme a framework come Hibernate, Spring o CUBA