[Mastering Spring 5.0] 6.3 Bean Validation
Mastering Spring 5.0 μ€ν°λ
Bean Validation
λ°μ΄ν° μ ν¨μ± κ²μ¦ (Validation) μ λͺ¨λ κ³μΈ΅μμ 곡ν΅μ μΌλ‘ λ°μνλ μμ μ΄λ€. λ§μ½ λͺ¨λ κ³μΈ΅μμ λμΌν λ΄μ©μ Validation λ‘μ§μ΄ κ°κ°μ λ μ΄μ΄λ³λ‘ ꡬνλμ΄ μλ€λ©΄ μ½λ μ€λ³΅κ³Ό ν¨κ» κ° κ³μΈ΅λ³λ‘ μ€κ΅¬λλ°©μΌλ‘ ꡬνλ κ²μ¦λ‘μ§κ° λΆμΌμΉλ‘ μΈνμ¬ μ€λ₯κ° λ°μνκΈ°λ μ½λ€.
μ΄λ¬ν Validation μ€λ³΅μ νΌνκΈ° μν΄ λλ©μΈμ κ²μ¦ λ‘μ§μ λλ©μΈ λͺ¨λΈ μ체μ λ¬Άμ΄μ μ μνκΈ°λ νλ€. νμ§λ§ λλ©μΈ λͺ¨λΈμ μ€μ μ½λλ‘ Validation λ‘μ§μ νννλ€λ©΄ λλ©μΈ λͺ¨λΈ μμ²΄κ° μ₯ν©νμ§κ³ 볡μ‘ν΄μ§κ² λλ€.
Java μμλ μμ κ°μ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μ΄λ Έν μ΄μ μ ν΅ν Entity μ Method λ₯Ό κ²μ¦νκΈ° μν API λ₯Ό μ 곡νκ³ μλ€.
Bean Validation
- μ΄λ Έν μ΄μ μ ν΅ν΄ κ°μ²΄ λͺ¨λΈμ λν μ μ½ μ‘°κ±΄μ νν ν μ μλ€.
- νμ₯ κ°λ₯ν λ°©μμΌλ‘ μ¬μ©μ μ μ μ μ½ μ‘°κ±΄μ μμ±ν μ μλ€.
- κ°μ²΄ λ° κ°μ²΄ κ·Έλνλ₯Ό κ²μ¦νκΈ° μν API λ₯Ό μ 곡νλ€.
- λ©μλ λ° μμ±μμ λ§€κ° λ³μλ₯Ό νμΈνκ³ λ°ν κ°μ 리ν΄νλ API λ₯Ό μ 곡νλ€.
- νμ§ν λ μΈμ΄λ‘ μλ° μ¬νμ λ³΄κ³ νλ€.
Hibernate Validator
Hibernate Validator λ Bean Validation λͺ μΈμ λν ꡬν체μ΄λ€. Bean Validation 2.0 μ λν ꡬνμ Hibernate Validator 6.0.1.Final μ΄λ©° Spring Boot 2.0 μ΄μμμ μ΄κ²μ μ¬μ©νκ³ μλ€.
μ€νλ§ λΆνΈλ‘ Bean Validation μμνκΈ°
νλ‘μ νΈ μ€μ
Hibernate Validator λ spring-boot-web-start
νλ‘μ νΈμ μμ‘΄μ±μΌλ‘ μ μ λλ€.
- org.hibernate.validator:hibernate-validator:6.0.13.Final
- javax.validation:validation-api:2.0.1.Final
컨νΈλ‘€λ¬ λ©μλμ Bean Validation νμ±ν
Controller λ©μλμ λ§€κ° λ³μμ @Valid
μ΄λ
Έν
μ΄μ
μ μΆκ°ν¨μΌλ‘ μ νμ± κ²μ¬λ₯Ό νΈλ¦¬κ±° ν μ μλλ‘ νμ±ν μν¬ μ μλ€.
μλμ κ²½μ° POST μμ²μΌλ‘ λ€μ΄μ¨ 맀κ°λ³μλ₯Ό λ°μΈλ© ν λ€ Todo λΉμ μ μλ Validation μ λ°λΌ μ ν¨μ± κ²μ¦μ νκ² λλ€.
|
|
λλ©μΈ κ°μ²΄μ Bean Validation μ μ
|
|
- @NotNull - user νλμ κ°μ΄ λΉμ΄ μμ§ μμμ§ νμΈνλ€.
- @Size(min = 9, message = “Enter at least 10 Characters.”) - desc νλ κ°μ λ¬Έμκ° 9 μ μ΄μμΈμ§ νμΈνλ€.
Bean μ κ²μ¦νλ λ° μ¬μ©ν μ μλ μ΄λ Έν μ΄μ μ λ§λ€. λ€μμ λͺ κ°μ§ Bean Validation μ΄λ Έν μ΄μ μ΄λ€.
- @AssertTrue, @AssertFalse - μ΄λ Έν μ΄μ μ μ λ νλ κ°μ΄ true νΉμ false μΈμ§ νμΈ νλ€.
- @Future - μ΄λ Έν μ΄μ μ μ νλ λ κ°μ΄ λ―Έλ λ μ§μ¬μΌ νλ€.
- @Past - μ΄λ Έν μ΄μ μ μ νλ κ°μ΄ κ³Όκ±°μ λ μ§μ¬μΌ νλ€.
- @Max - μ΄λ Έν μ΄μ μ μ νλ κ°μ΄ μ§μ λ μ΅λκ° λ³΄λ€ μκ±°λ κ°μ μ«μμ¬μΌ νλ€.
- @Min - μ΄λ Έν μ΄μ μ μ νλ κ°μ΄ μ§μ λ μ΅μκ° λ³΄λ€ ν¬κ±°λ κ°μ μ«μμ¬μΌ νλ€.
- @NotNull - μ΄λ Έν μ΄μ μ μ νλ κ°μ΄ null μ΄λ©΄ μλλ€.
- @Pattern - μ΄λ
Έν
μ΄μ
μ μ νλ κ°μ
{@code CharSequence}
μμλ μ§μ λ μ κ· ννμκ³Ό μΌμΉν΄μΌ νλ€. μ κ·ννμμ μλ° μ κ· ννμ κ·μΉμ λ°λ₯Έλ€. - @Size - μ΄λ Έν μ΄μ μ μ νλ κ°μ ν¬κΈ°λ μ§μ λ λ²μ λ΄μ μμ΄μΌ νλ€.
μ°Έκ³
- beanvalidation.org - https://beanvalidation.org/