diff --git a/springboot_validation/build.gradle b/springboot_validation/build.gradle index 90aa5dff..bd7c573b 100644 --- a/springboot_validation/build.gradle +++ b/springboot_validation/build.gradle @@ -21,6 +21,7 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-validation' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' diff --git a/springboot_validation/src/main/java/hello/itemservice/domain/item/Item.java b/springboot_validation/src/main/java/hello/itemservice/domain/item/Item.java index 9c27ae4a..9bdf5390 100644 --- a/springboot_validation/src/main/java/hello/itemservice/domain/item/Item.java +++ b/springboot_validation/src/main/java/hello/itemservice/domain/item/Item.java @@ -1,13 +1,26 @@ package hello.itemservice.domain.item; import lombok.Data; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.Max; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; @Data public class Item { private Long id; + + @NotBlank private String itemName; + + @NotNull + @Range(min = 1000, max = 1000000) private Integer price; + + @NotNull + @Max(9999) private Integer quantity; public Item() { diff --git a/springboot_validation/src/test/java/hello/itemservice/validation/BeanValidationTest.java b/springboot_validation/src/test/java/hello/itemservice/validation/BeanValidationTest.java new file mode 100644 index 00000000..e36e6d6d --- /dev/null +++ b/springboot_validation/src/test/java/hello/itemservice/validation/BeanValidationTest.java @@ -0,0 +1,27 @@ +package hello.itemservice.validation; + +import hello.itemservice.domain.item.Item; +import org.junit.jupiter.api.Test; + +import javax.validation.ConstraintViolation; +import javax.validation.Validation; +import javax.validation.Validator; +import javax.validation.ValidatorFactory; +import java.util.Set; + +public class BeanValidationTest { + + @Test + void beanValidation() { + ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); + Validator validator = factory.getValidator(); + + Item item = new Item(); + item.setItemName(" "); + item.setPrice(0); + item.setQuantity(10000); + + Set> validations = validator.validate(item); + validations.forEach(System.out::println); + } +}