From 6c0f5f7e88133a1b32ca7b86a6228c42c071d7ed Mon Sep 17 00:00:00 2001 From: haerong22 Date: Sat, 17 Jul 2021 11:03:24 +0900 Subject: [PATCH] springboot_validation : bean validation --- springboot_validation/build.gradle | 1 + .../hello/itemservice/domain/item/Item.java | 13 +++++++++ .../validation/BeanValidationTest.java | 27 +++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 springboot_validation/src/test/java/hello/itemservice/validation/BeanValidationTest.java 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); + } +}