반응형
@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 |