Spring
스프링 MVC 2 - Bean Validation - 오브젝트 오류
스프링 MVC 2 - Bean Validation - 오브젝트 오류
2022.09.06Bean Validation - 오브젝트 오류 Bean Validation에서 특정 필드(FieldError)가 아닌 해당 오브젝트 관련 오류(ObjectError)는 어떻게 처리할 수 있을까? 다음과 같이 @ScriptAssert()를 사용하면 된다. 실행해보면 정상 수행되는 것을 확인할 수 있다. 메시지 코드도 다음과 같이 생성된다. 메시지 코드 ScriptAssert.item ScriptAssert 그런데 실제 사용해보면 제약이 많고 복잡하다. 그리고 실무에서는 검증 기능이 해당 객체의 범위를 넘어서는 경우들도 종종 등장하는데, 그런 경우 대응이 어렵다. 따라서 오브젝트 오류(글로벌 오류)의 경우 @ScriptAssert 을 억지로 사용하는 것 보다는 다음과 같이 오브젝트 오류 관련 부분만 직접 자..
스프링 MVC 2 - Bean Validation - 에러 코드
스프링 MVC 2 - Bean Validation - 에러 코드
2022.09.03Bean Validation - 에러 코드 Bean Validation이 기본으로 제공하는 오류 메시지를 좀 더 자세히 변경하고 싶으면 어떻게 하면 될까? Bean Validation을 적용하고 bindingResult에 등록된 검증 오류 코드를 보자. 오류 코드가 애노테이션 이름으로 등록된다. 마치 typeMismatch와 유사하다. NotBlank라는 오류 코드를 기반으로 MessageCodesResolver를 통해 다양한 메시지 코드가 순서대로 생성된다. @NotBlank NotBlank.item.itemName NotBlank.itemName NotBlank.java.lang.String NotBlank @Range Range.item.price Range.price Range.java.lang...
스프링 MVC 2 - Bean Validation - 스프링 적용
스프링 MVC 2 - Bean Validation - 스프링 적용
2022.09.03Bean Validation - 스프링 적용 ValidationItemControllerV3 코드 수정 제거 : addItemV1() ~ addItenV5() 변경 : addItemV6() → addItem() 코드 제거 기존에 등록한 ItemValidator를 제거해두자! 오류 검증기가 중복 적용된다. private final ItemValidator itemValidator; @InitBinder public void init(WebDataBinder dataBinder) { log.info("init binder {}", dataBinder); dataBinder.addValidators(itemValidator); } 실행 http://localhost:8080/validation/v3/items..
스프링 MVC 2 - Bean Validation - 프로젝트 준비 V3
스프링 MVC 2 - Bean Validation - 프로젝트 준비 V3
2022.09.02Bean Validation - 프로젝트 준비 V3 앞서 만든 기능을 유지하기 위해, 컨트롤러와 템플릿 파일을 복사하자. ValidationItemControllerV3 컨트롤러 생성 hello.itemservice.web.validation.ValidationItemControllerV2 복사 hello.itemservice.web.validation.ValidationItemControllerV3 붙여넣기 URL 경로 변경: validation/v2/ → validation/v3/ 템플릿 파일 복사 validation/v2 디렉토리의 모든 템플릿 파일을 validation/v3 디렉토리로 복사 /resources/templates/validation/v2/ → /resources/templates/v..
스프링 MVC 2 - Bean Validation - 시작
스프링 MVC 2 - Bean Validation - 시작
2022.09.02Bean Validation - 시작 Bean Validation 기능을 어떻게 사용하는지 코드로 알아보자. 먼저 스프링과 통합하지 않고, 순수한 Bean Validation 사용법 부터 테스트 코드로 알아보자. Bean Validation 의존관계 추가 의존관계 추가 Bean Validation을 사용하려면 다음 의존관계를 추가해야 한다. build.gradle spring-boot-starter-validation 의존관계를 추가하면 라이브러리가 추가된다. Jakarta Bean Validation jakarta.validation-api : Bean Validation 인터페이스 hibernate-validator 구현체 테스트 코드 작성 Item - Bean Validation 애노테이션 적용 검..
스프링 MVC 2 - Bean Validation - 소개
스프링 MVC 2 - Bean Validation - 소개
2022.09.01Bean Validation - 소개 검증 기능을 지금처럼 매번 코드로 작성하는 것은 상당히 번거롭다. 특히 특정 필드에 대한 검증 로직은 대부분 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다. 다음 코드를 보자. 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; //... } 이런 검증 로직을 모든 프로젝트에 적용할 수 있게 공통화하고, 표준화 한 것이 바로 Bean Validation이다. Bea..