Spring Boot Development 웹 프로젝트는 때때로 비어 있지 않은 정수 값, 문자열 길이, 날짜, 이메일 등과 같은 컨트롤러 계층에 의해 전달되는 매개 변수의 기본 검증을 수행해야합니다. 스프링은 JSR-303 Bean Validation API를 지원합니다.
확인을 위해 주석을 사용하십시오
먼저 양식 캡슐화 객체를 정의합니다
클래스 requestform {@size (min = 1, max = 5) 개인 문자열 이름; 공개 문자열 getName () {return name; } public void setName (문자열 이름) {this.name = 이름; }}이름 필드는 크기 주석이있는 길이 1에서 5로 제한됩니다. 크기는 javax.validation 패키지의 제약 조건 주석입니다.
@Valid 주석을 사용하면 콩을 확인해야합니다.
@ResponseBody @getMapping (value = "bean") public string validate (@valid requestform request) {system.out.println (request.getName ()); "OK"를 반환합니다. }맞춤형 주석
내장 주석이 충분하지 않으면 주석을 사용자 정의 할 수 있습니다.
예를 들어, 먼저 주석 nameconstraint를 정의하고 특정 데이터에서 선택하도록 이름 필드를 제한합니다.
@TARGET ({ElementType.field, ElementType.parameter})@retention (retentionpolicy.runtime) @Constraint (validatedBy = nameSongraintValidator.class) @Interface nameConstraint {String [] endramestValues (); class <?> [] groups () default {}; 클래스 <? payload> [] payload () default {}을 확장합니다. 문자열 메시지 ();}허용 값이 법적 값 범위를 나타내는 경우, 메시지는 검증 실패에 대한 디스플레이 정보입니다.
메시지, 그룹 및 페이로드는 Hibernate Validator가 요구하는 필드입니다. 알고 싶다면 공식 문서를 참조하십시오.
실제 검증을 위해 유효성 검사기를 정의하십시오
클래스 nameconstraintValidator는 제한 조건 Validator를 구현합니다. @override public void initialize (nameconstraint restaintannotation) {validValues = ranstainTannotation.allowedValues (); } @override public boolean isvalid (문자열 값, sonstraintValidatorContext 컨텍스트) {for (문자열 s : this.validValues) {if (s.equals (value)) {return true; }} 거짓을 반환합니다. }}다음과 같이 양식 Bean에 사용하십시오
클래스 requestFormwithCustomConstraint {@nameConstraint (allendValues = { "bar", "foo"}, message = "Only Bar, foo") 개인 문자열 이름; 공개 문자열 getName () {return name; } public void setName (문자열 이름) {this.name = 이름; }}매개 변수의 직접 검증
물체를 캡슐화하고 싶지 않다면 어떻게해야합니까? 이 매개 변수는 직접 확인할 수 있습니다
@controller@validated@requestMapping (value = "validator") public class parametervalidatordemocontroller {@responsebody @getmapping (value = "simple") public String validateParameter (@size (min = 1, max = 5) 문자열 이름) {system.out.println (name); "OK"를 반환합니다. }}컨트롤러 위의 @Validated 주석은 Spring에게 제약 조건 주석을 확인하기 위해이 클래스를 스캔해야한다고 말합니다.
자세한 내용은 공식 문서의 관련 장을 참조하십시오.
https://docs.spring.io/spring-boot/docs/1.5.9. release/reference/htmlsingle/#boot-features-validation
https://docs.spring.io/spring/docs/4.3.16.release/spring-framework-reference/htmlsingle/#validation-beanvalidation
github에 코드
https://github.com/kabike/spring-boot-demo
요약
위는 편집기가 소개 한 Spring Boot 매개 변수 검증 방법에 대한 자세한 설명입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨주세요. 편집자는 제 시간에 당신에게 답장 할 것입니다!