Czy jest dostępna implementacja JSR-303 (Bean validation)?

Wiem, że istnieją niestandardowe frameworki, takie jak commons-validator i Hibernate validator.

Chciałem się dowiedzieć, czy ktoś zna implementację oficjalnego standardu.

Author: flybywire, 2009-09-06

6 answers

Walidator Hibernate jest implementacją referencyjną JSR-303

 33
Author: skaffman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-13 08:20:11

Obecnie są 2 Zgodne implementacje:

Możesz uzyskać dostęp do benchmark i krótki opis obu tutaj: http://carinae.net/2010/06/benchmarking-hibernate-validator-and-apache-beanvalidation-the-two-jsr-303-implementations/

 56
Author: bashflyng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-13 08:23:43
 14
Author: Martin K.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-06 08:12:16

OVaL nie jest walidatorem JSR-303, ale może konwertować ograniczenia jsr303 na własne.

 3
Author: schnitz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-10 01:15:23

Spring Framework stał się zgodny z JSR303 od wersji 3.

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

Spring Framework 4.0 obsługuje Bean Validation 1.0 (JSR-303) i Bean Validation 1.1 (JSR-349) pod względem obsługi konfiguracji, dostosowując ją również do interfejsu walidatora Spring.

 3
Author: VHS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-14 18:27:01

Jeśli chodzi o lato 2018, istnieją trzy specyfikacje, które wzajemnie się supersamocą:

  • JSR 380 (Bean Validation 2.0)
  • JSR 349 (Bean Validation 1.1)
  • JSR 303 (Bean Validation 1.0)
Więcej informacji można znaleźć na oficjalnej stronie .

Walidator Hibernate 6.10 jest referencyjną implementacją najnowszej wersji (380). Ma świetną } dokumentację Polecam rzucić okiem (jednak jest dość duża rzeczy).

CUBA platform docs może dać ci znacznie krótsze zrozumienie tematu, jeśli potrzebujesz tylko szybkiego wstępu. CUBA framework jest oparty na Spring i EclipseLink, więc rzeczy, których się nauczyłeś, mogą być również używane na zwykłych projektach Spring+Hibernate:)

JSR 349 jest wspierany przez starsze wersje walidatora Hibernate oraz przez Apache BVal, obie są "oficjalne".

Z ORMs innych niż Hibernate, EclipseLink obsługuje JSR 349 i może używać interfejsu walidatora dostarczonego przez HV.

Jeśli to możliwe, polecam nie używać starszej wersji (JSR 303), ale przełączyć się na specyfikację 349 lub 380. Są one bardziej dojrzałe i bogate.

Bean Validation może być użyty w projekcie, nawet jeśli nie ma w nim ORM, na przykład możesz go użyć w swoich aplikacjach Java 2SE lub Android (zobacz ten artykuł ), jednak nie jest to podejście Bean Validation zostało zaprojektowane jako podstawowa rzecz. Chociaż możliwe jest użycie tych walidatory (HV i BVal) same w sobie (trzeba by utworzyć instancję i wywołać Validator i ExecutableValidator Ręcznie), naprawdę będą świecić pracując razem z frameworkami takimi jak Hibernate, Spring czy CUBA

 0
Author: Mikhail Dyakonov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-22 18:54:52