@Not Empty

SeungJoo
|2024. 4. 1. 20:58
728x90

@Not Empty

Java 애플리케이션에서 주로 사용되는 유효성 검사입니다. Spring Boot나 Jakarta와 같은 프레임 워크에서 사용되며, 주어진 필드가 비어있지 않고 , 빈 문자열이 아님을 확인하는 데 사용됩니다. 이를 통해 @NotNull이나 @Not Black와 함께 사용하여 포괄적인 유효성 검사를 제공할 수 있습니다.

검사 대상

클래스 필드에 적용하여 해당 필드가 유효한 값으로 채워져야 함을 나타냅니다.

메서드의 매개변수에 적용하여 해당 매개변수가 null이 아니고 , 빈 문자열이 아닌지를 검사하빈다.

동작 방식

@NotEmpty 유효성 검사 시 값을 검사하기 전에 null 체크를 수행합니다. 값이 null일 때 검증 실패로 간주 되며 빈 문자열("")도 유효하지 않은 값으로 간주하여 검증에 실패됩니다.

 

NotEmpty를 사용하기 위해서는 의존성을 추가해주어야 합니다.

 implementation 'org.springframework.boot:spring-boot-starter-validation'

 

유효성 검사를 수행할 Entity를 만듭니다. 

Member

@Getter
@Setter
public class MemberForm {

    @NotEmpty(message = "회원 이름은 필수")
    private String name;

    private String city;
    private String street;
    private String zipcode;
}

MemberController

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

@RestController
@Validated
public class MemberController {

    @Autowired
    private MemberService memberService;

    @PostMapping("/members")
    public ResponseEntity<String> registerMember(@Valid @RequestBody MemberForm memberForm) {
        // 회원 정보 등록 로직
        boolean result = memberService.registerMember(memberForm);

        if (result) {
            return ResponseEntity.status(HttpStatus.CREATED).body("회원 등록 성공");
        } else {
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("회원 등록 실패");
        }
    }
}

코드에서 MemberController 클래스는 `/members` 엔트포인트를 통해 POST 요청을 처리합니다. @Valid 어노테이션을 사용하여 MemberForm 객체의 유효성을 검사하고, 유효하지 않은 경우에 클라이언트에게 에러 응답을 반환합니다.

MemberService

import org.springframework.stereotype.Service;

@Service
public class MemberService {

    public boolean registerMember(MemberForm memberForm) {
 
        return true;
    }
}

POST 요청을 보내면, 스프링 부트 애플리케이션은 MemberForm 객체의 name 필드가 비어있는지 확인하고, 비어있을 경우 "회원 이름은 필수"라는 메시지와 함께 에러 응답을 반환합니다.

728x90

'Spring(Boot & FrameWork)' 카테고리의 다른 글

OSIV  (0) 2024.04.10
Enumerated  (0) 2024.03.28
클래스 분리  (1) 2024.03.27