[java] Hibernate Validator를 사용하여 전화번호 포맷 유효성 검사를 수행하는 방법은 무엇인가요?
- 먼저, Maven 또는 Gradle을 사용하여 Hibernate Validator를 프로젝트에 추가해야 합니다. 이를 위해
pom.xml
(또는build.gradle
) 파일에 다음 의존성을 추가합니다.
<!-- Maven -->
<dependencies>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.2.0.Final</version>
</dependency>
</dependencies>
// Gradle
dependencies {
implementation 'org.hibernate.validator:hibernate-validator:6.2.0.Final'
}
- 유효성 검사가 필요한 전화번호를 나타내는 클래스를 작성합니다. 예를 들어, 다음과 같이 PhoneNumber 클래스를 만들어 보겠습니다.
import javax.validation.constraints.Pattern;
public class PhoneNumber {
@Pattern(regexp = "\\d{3}-\\d{3}-\\d{4}", message = "올바른 전화번호 형식이 아닙니다.")
private String number;
// 생성자, getter 및 setter 생략
}
- 이제 전화번호 유효성 검사를 수행하기 위해 Validator를 사용할 준비가 되었습니다. 다음은 입력된 PhoneNumber 객체의 유효성을 검사하는 간단한 예입니다.
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import java.util.Set;
public class Main {
public static void main(String[] args) {
// Validator 인스턴스 획득
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
// 유효성 검사가 필요한 PhoneNumber 객체 생성
PhoneNumber phoneNumber = new PhoneNumber();
phoneNumber.setNumber("123-456-7890");
// 유효성 검사
Set<ConstraintViolation<PhoneNumber>> violations = validator.validate(phoneNumber);
if (violations.isEmpty()) {
System.out.println("전화번호가 유효합니다.");
} else {
for (ConstraintViolation<PhoneNumber> violation : violations) {
System.out.println(violation.getPropertyPath() + ": " + violation.getMessage());
}
}
}
}
위의 예제에서는 @Pattern
어노테이션을 사용하여 전화번호의 형식을 지정하고, Pattern
어노테이션의 message
속성을 사용하여 유효성 검사 실패 시 출력할 메시지를 지정합니다.