본문으로 바로가기

[Spring MVC] @Valid vs @Validated

category Spring/SpringMVC 2019. 8. 13. 21:19

Valid와 Validated 공통점 ]

: 유효성 검증가능

 

 

Valid와 Validated 차이점 ]

: 그룹지정이 불가능

@Valid는 스프링이 만든 기술은 아니며 JSR-303이란 이름으로 채택된 서블릿 2.3 표준스펙 중 하나.

  스프링은 이 새로운 표준을 확장하고 쉽게 사용할 수 있도록 스프링만의 방식으로 재편성.

  @Validated는 Spring에서 제공

 

먼저 @Valid 사용법을 알아보겠습니다.

 

 

< Source >

 

 

@ModelAttribute 앞에 @Valid 를 추가하면서 Valid 검증을 할수있게 됩니다.

Event의 limit 필드는 @Min(0) 추가하면서 최소값은 0이다라는 조건을 달게 되고

테스트케이스에서 limit을 -1을 보내게 되면 Error를 발생하게 됩니다.

 

@Valid 대신 @Validated도 똑같이 작동한다. 하지만 @Validated는 그룹지정이 가능하다는 장점이 있다.

 

 

 

Event 클래스를 보면 interface를 두개 만들고 각 필드에 groups을 설정하게 되면

테스트케이스에서 limit에 -1값을 주었지만 에러가 나지 않는다.

Validated에서 ValidatedName 클래스에 대해서만 검증을 하기 때문이다.