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
- Officiell webbplats Öppet utvecklingsarbete av JSR 303, 349 och 380
- Video av presentation på Devoxx, *Bean Validation 2.0 - du har lagt dina kommentarer överallt! av Gunnar Morling*
- Intervju med Spec Lead Emmanuel Bernard
- JSR 303 sida
- Hibernate Validator
- Bean Validation TCK-dokumentation
- Hur man kör Bean Validation TCK