킹다의 개발블로그

@Valid 본문

02. 프레임워크/spring

@Valid

킹다킹 2021. 8. 12. 17:45
반응형

우리가 로그인시, 또는 입력창에 데이터를 입력 후 검증을 해야할 때 사용할 @Valid 어노테이션이 있다.

@Valid 란?

api를 만들 때 유효성 검사를 하게 된다. 예를 들어 로그인, 회원가입 등등 그럴 때 간편하게 검증할 수 있도록 해주는 어노테이션이다.

@Valid 사용해보기

user라는 vo를 먼저 만들어보자.

@Data
@NoArgsConstructor
public class User {
    @Length(max = 12, min = 3, message = "길이가 유효하지않습니다.") //최대길이 12, 최소길이 3
    @NotEmpty(message = "id를 입력해주세요") // null과 "" 비허용
    private String id;
    @NotBlank // 빈문자열 안됨
    private String password;
    private String company;
    private String depart;
}

@Controller

@PostMapping("/signup")
    public ResponseEntity<?> signup(
            BindingResult bindingResult, @Valid @RequestBody User user) {

        log.info("rest/signup: {}", admin);

        if(bindingResult.hasErrors()) {
            log.info("오류");

            resultJson = "{ \"verified\":false, \"result\":입력 오류\" }";
            return new ResponseEntity<String>(resultJson, HttpStatus.OK);
        }

만약 id를 @Length의 길이를 12이상, 또는 8미만으로 입력했다면 bindingResult.hasErrors를 통해 오류를 검증할 수 있다.

주의할 점!
파라미터에 항상 @Valid를 먼저 써줘야 함

public ResponseEntity<?> signup(@Valid @RequestBody User user, BindingResult bindingResult)

테스트 결과 보기


id 칸에 2개의 문자만 보내면 입력 오류라는 결과를 확인할 수 있다.

*Admin 객체로 만들어놨지만 User라고 생각하면 됨


4글자로 입력을 하게 되면 입력 오류가 뜨지 않고 정상적으로 나온 것을 확인할 수 있다.

반응형

'02. 프레임워크 > spring' 카테고리의 다른 글

Spring Cloud Config Client 설정해보기  (0) 2021.08.13
Spring Cloud Config Server 설정해보기  (0) 2021.08.13
Spring Security - 2  (0) 2021.08.10
Dao 와 Mapper의 차이  (2) 2021.08.10
Spring Security - 1  (7) 2020.10.26
Comments