스프링에서 Validation 쉽게 하는법

Martin the dog·2023년 9월 18일

스프링 복습하기

목록 보기
6/15

우리는 다양한 값을 입력받아 컨트롤러로 보내는 작업을 많이 한다.
이때 프론트에서 뿐만 아니라 백엔드에서도 입력값을 확인할 필요가 있다. 이때 Spring에서 javax.validation.constraint와 org.hibernate.validator.constraints을 import하여 필요한 valid를 쉽게 적용할 수 있다.
여기에는 다양한 validation 목록이 있는데

Anotation의미
@NotNullNull값만 아니면 다른 어떤 값이 들어와도 된다.
@NotEmptyCollection,Map,Array등이 Null값이 아니고 사이즈가 0보다는 커야한다.
@NotBlankString이 Null이 아니고 Length>0이여야 한다.
@Positive0초과 여야만 한다.
@PositiveOrZero0이상이기만 하면 된다.
@Negative0미만이여야 한다.
@NegativeOrZero0이하여야 한다.
@Past or @PastOrPresent날짜 형식에 많이 쓰이며 오늘 이전인지 확인하는데 사용된다.

이런 다양한 Annotation은 어디서 사용될까?

Class에서 사용하기

클래스의 필드멤버의 유효성을 검사할 때 요긴하게 사용할 수 있다.
먼저 Valid하고자 하는 멤버위에 해당 어노테이션들을 붙인다.

public class Order {
	@NotBlank(message="name is required");
    private String name;
    @Positive 
    private Integer count;
}

이 값을 Controller에서 받아 검증하려면 다음과 같이 Controller를 작성하면 된다.

@PostMapping
pulbic String test(@Valid Order order,Error errors){
	if(errors.hasErrors()){
    	에러 있을 때 로직
    }
}

위 코드를 간단히 간단히 설명하자면 @Valid를 통해 필드 멤버들을 검증한다. 그후 만약 에러가 나 있다면 Errors.hasErrors()를 통해 해당 여부를 확인하고 수정한다.

profile
Happy Developer

0개의 댓글