Existe uma implementação de JSR-303 (validação de bean) disponível?
-
21-09-2019 - |
Pergunta
Eu sei que existem estruturas não padrão, como validador comum e validador de hibernação.
Queria saber se alguém conhece uma implementação do padrão oficial.
Solução
O validador de hibernato é o implementação de referência de JSR-303
Outras dicas
Existem 2 implementações compatíveis agora:
- Validação do Apache Bean (anteriormente Agimatec)
- Validador de Hibernato
Você pode acessar uma referência e uma descrição rápida de ambos aqui: http://carinae.net/2010/06/benchmarking-hibernate-validator-and-apache-beanvalidation-the-two-jsr-303-implementations/
Implementações:
Oval não é um validador JSR-303, mas pode converter restrições do JSR303 em suas próprias.
A estrutura da primavera tornou -se compatível com o JSR303 da versão 3, eu acho.
O Spring Framework 4.0 suporta a validação do feijão 1.0 (JSR-303) e a validação do feijão 1.1 (JSR-349) em termos de suporte à configuração, também o adapta à interface do validador da Spring.
Quanto ao verão de 2018, existem três especificações que se sobrepõem:
- JSR 380 (Validação de Bean 2.0)
- JSR 349 (Validação de Bean 1.1)
- JSR 303 (Validação de Bean 1.0)
Você pode consultar o site oficial para mais detalhes.
Validador de hibernação 6.10 é uma implementação de referência da mais recente (380).Tem um ótimo documentação Eu recomendo dar uma olhada (no entanto, é algo muito grande).
Documentos da plataforma CUBA pode fornecer uma compreensão muito mais curta do tópico se você precisar apenas de uma introdução rápida.A estrutura CUBA é baseada em Spring e EclipseLink, então o que você aprendeu também pode ser usado em projetos regulares de Spring + Hibernate :)
O JSR 349 é suportado por versões mais antigas do Hibernate Validator e por Apache BVal, ambos são "oficiais".
De ORMs diferentes do Hibernate, Eclipse Link suporta JSR 349 e pode usar a interface Validator fornecida pela HV.
Se for possível, eu recomendaria não usar a versão mais antiga (JSR 303), mas mudar para as especificações 349 ou 380.Eles são bem mais maduros e ricos.
Bean Validation pode ser usado no projeto mesmo que não haja ORM nele, por exemplo, você pode usá-lo em seus aplicativos Java 2SE ou Android (veja isto artigo), no entanto, esta não é a abordagem para a qual a Validação de Bean foi projetada como algo principal.Embora seja possível usar esses validadores (HV e BVal) sozinhos (você teria que instanciar e chamar Validator
e ExecutableValidator
manualmente), eles realmente brilharão trabalhando em conjunto com frameworks como Hibernate, Spring ou CUBA