[java] Hibernate Validator를 사용하여 소문자 및 대문자 유효성 검사를 수행하는 방법은 무엇인가요?
- 프로젝트에 Hibernate Validator 의존성을 추가합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:
<dependencies>
...
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.2.0.Final</version>
</dependency>
...
</dependencies>
- 검사할 DTO(데이터 전송 객체) 클래스를 작성합니다. 이 클래스는 검사할 속성을 가지고 있어야 합니다. 예를 들어, 다음과 같이
UserDto
클래스를 만들어보겠습니다:
public class UserDto {
@Pattern(regexp="[a-z]+", message="소문자로 입력해주세요.")
private String username;
@Pattern(regexp="[A-Z]+", message="대문자로 입력해주세요.")
private String password;
// Getter, Setter, 기타 메소드
}
- 검사할 루틴에서 Hibernate Validator를 사용하여 유효성 검사를 수행합니다. 예를 들어, 다음과 같이
UserService
클래스의saveUser
메소드에서 유효성 검사를 수행하는 코드를 작성할 수 있습니다:
public class UserService {
public void saveUser(UserDto userDto) {
ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
Validator validator = validatorFactory.getValidator();
Set<ConstraintViolation<UserDto>> violations = validator.validate(userDto);
if (!violations.isEmpty()) {
throw new ValidationException("유효성 검사 실패: " + violations);
}
// 저장 로직 수행
}
}
위 코드에서 Validation.buildDefaultValidatorFactory()
를 호출하여 ValidatorFactory
를 가져온 후, 이를 사용하여 실제 유효성 검사를 수행합니다. validate
메소드는 검사 대상 객체에 대한 유효성 검사를 수행하고, violations
변수에 결과를 담습니다. 만약 유효성 검사에 실패하면, ValidationException
을 발생시킵니다.
- 이제
saveUser
메소드를 호출하여 유효성 검사를 수행할 수 있습니다:
UserDto userDto = new UserDto();
userDto.setUsername("username");
userDto.setPassword("PASSWORD");
userService.saveUser(userDto);
위 예제에서는 UserDto
의 username
속성이 소문자로 입력되고, password
속성이 대문자로 입력되어 유효성 검사 실패합니다. 이에 따라 ValidationException
이 발생하여 예외처리 코드가 실행됩니다. 유효성 검사가 통과되는 경우에는 저장 로직을 수행할 수 있습니다.