Bean Validering

Bean Validation definierar en metadatamodell och API för JavaBean- validering. Metadatakällan är annoteringar , med möjligheten att åsidosätta och utöka metadata genom att använda XML -valideringsdeskriptorer.

Ursprungligen definierad som en del av Java EE , version 2 syftar till att fungera i Java SE- appar också.

Java Bean Validation ( JSR 303 ) har sitt ursprung som ett ramverk som godkändes av JCP den 16 november 2009 och accepterades som en del av Java EE 6-specifikationen. Hibernate - teamet tillhandahåller med Hibernate Validator referensimplementeringen av Bean Validation och skapade också Bean Validation TCK som alla implementeringar av JSR 303 behöver godkännas .

Aktuell version

Bean Validation 2.0 definieras av JSR 380 , godkänd 2017-07-31. Denna stora utgåva utnyttjar språkfunktioner i Java 8 som är mycket användbara för Bean Validation. Så Java 8 krävs som minsta Java-version.

Andra ändringar inkluderar:

  • Stöd för validering av containerelement genom att kommentera typargument av parametriserade typer, t.ex. List<@Positive Integer> positiveNumbers; detta inkluderar även:
    • Mer flexibel kaskadvalidering av samlingstyper; t.ex. värden och nycklar för kartor kan valideras nu: Map<@Valid CustomerType, @Valid Customer> customersByType
    • Stöd för java.util.Valfritt
    • Stöd för de egenskapstyper som deklareras av JavaFX
    • Stöd för anpassade behållartyper genom att koppla in extra värdeextraktorer
  • Stöd för de nya datum/tid-datatyperna för @Past och @Future; finkornig kontroll över aktuell tid och tidszon som används för validering
  • Nya inbyggda begränsningar: @Email, @NotEmpty, @NotBlank, @Positive, @PositiveOrZero, @Negative, @NegativeOrZero, @PastOrPresent och @FutureOrPresent
  • Alla inbyggda begränsningar är markerade som repeterbara nu
  • Parameternamn hämtas med hjälp av reflektion
  • ConstraintValidator#initialize() är en standardmetod
  • Namnutrymmet för Bean Validation XML-deskriptorer har ändrats till http://xmlns.jcp.org/xml/ns/validation/configuration [ permanent död länk ] för META-INF/validation.xml och http://xmlns.jcp. org/xml/ns/validation/mapping [ permanent död länk ] för begränsningsmappningsfiler

Föregående version

Bean Validation 1.1 ( JSR 349 ) förbättras jämfört med den ursprungliga versionen 1.0 ( JSR 303 ). Viktiga förändringar inkluderar:

  • Validering av metodargument och returvärde
  • Beroendeinjektion
  • En mer öppen process för att utveckla specifikationen

Slutlig release av 1.1-specifikationen inträffade 2013-05-24.

Vidare läsning