@Valid vs @Validated
Reference:Baeldung - Differences in @Valid and @Validated Annotations in Spring
@Valid and @Validated
@Valid
๋ฅผ ์ ์ฉํ ๋๋ ์ ์ฝ์กฐ๊ฑด์ ์ค์ ํ ์์ฑ์ ๋ํด ์ ๋ถ ์ ํจ์ฑ ๊ฒ์ฌ
๋ฅผ ํ๊ฒ ๋๋๋ฐ, ๋ง์ฝ ์ ์ฝ์กฐ๊ฑด์ ๊ทธ๋๋ก ์ ์ธํ๋ **์ํ๋ ์์ฑ๋ง ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
**์ @Validated
๋ฅผ ์ฌ์ฉํ ์ ์๋ค
@Valid vs @Validated
Target
@Validated
๋@Valid
์ ๊ธฐ๋ฅ์ ํฌํจํ๋คโ
@Valid
๋ฅผ ์ ์ฉํ ๊ณณ์ด๋ผ๋ฉด@Validated
๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅํ๋ค
@Valid
parameter๋ method ๋ด ๊ฐ์ฒด์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค
class ์์ค ์ ํจ์ฑ ๊ฒ์ฌ์๋ ์ฌ์ฉ๋์ง ์๋๋ค
@Validated
method ์์ค์ ์ ํจ์ฑ ๊ฒ์ฌ์ class ์์ค ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๋ชจ๋ ์ง์ํ๋ค
Group Validation Support
@Valid
Group ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ง์ํ์ง ์๋๋ค
@Validated
๊ฒํ ํ ๊ฒํ option์ group์ ์ง์ ํ ์ ์๋ค
group์ ์ง์ ํ์ฌ ํน์ group์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ ์ฉํ๊ฑฐ๋ ์๋ตํ ๋ ์ฌ์ฉํ ์ ์๋ค
Validation Method
@Valid
javax.validation.Validator
@Validated
org.springframework.validation.Validator
Spring์ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐฉ๋ฒ๊ณผ ํตํฉ๋์ด ์๋ค
@Validated
annotation์ ์ฌ์ฉํ๋ฉด Spring์ Validator ๊ตฌํ์ฒด๋ฅผ ํ์ฉํ์ฌ ํด๋น ๊ฐ์ฒด์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํ๋ค
Exception Handling
@Valid
javax.validation.ConstraintViolationException ์ด ๋ฐ์ํ๋ค
@Validated
Spring์ MethodArgumentNotValidException or BindException์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ด๋ฌํ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ custom message๋ handler๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค
Last updated