DTO 작성
아래와 같은 DTO가 있다고 가정하자. 해당 DTO는 뷰에서 컨트롤러로 사용자 정보를 넘기는 DTO이다.
스프링이 지원하는 검증 에노테이션인 NotBlank를 필드마다 추가하였다.
package register.register.service.login;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@Data
public class LoginForm {
@NotBlank
private String studentNumber;
@NotBlank
private String password;
public LoginForm() {
}
public LoginForm(String studentNumber, String password) {
this.studentNumber = studentNumber;
this.password = password;
}
}
ValidatorFactory -> Validator로 직접 검증
@Test
public void loginFormBeanValidationTest() throws Exception {
//given
ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
Validator validator = validatorFactory.getValidator();
LoginForm form = new LoginForm();
form.setStudentNumber(" ");
form.setPassword(" ");
//when
Set<ConstraintViolation<LoginForm>> violations = validator.validate(form);
//then
for (ConstraintViolation<LoginForm> violation : violations) {
System.out.println("violation = " + violation);
System.out.println("violation.message() = " + violation.getMessage());
}
}
현재 빈값으로 두가지 필드를 모두 작성하였다.

테스트를 작성해보면 form 객체의 모든 필드가 현재 공백임이 검증되었고, 그에 따른 스프링의 기본 오류 메시지가 출력되는 걸 볼 수 있다.
'Spring > MVC' 카테고리의 다른 글
| [MVC] 간단한 필드 검증 유틸 - ValidationUtils (0) | 2025.10.21 |
|---|---|
| [Spring] 메시지와 국제화 - 어떻게 국제화가 자동으로 일어날까요? (0) | 2025.07.03 |
| [Spring] @ModelAndAttribute 의 동작 과정 (0) | 2025.06.24 |
| [Spring] Spring MVC가 제공하는 Request 매핑 기능 (0) | 2025.06.24 |
| [Spring] Spring MVC - 스프링이 제공하는 컨트롤러 (0) | 2025.06.23 |