프레임워크/Spring
[Spring] validation 체크 - 2
여기니
2022. 4. 20. 13:44
이번에는 비밀번호체크 하는 어노테이션을 만들어서 validation 체크를 해볼것이다.
우선 pom.xml에 다음 의존성을 추가한다.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.10.Final</version>
</dependency>
package com.example.validatingforminput;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
@Documented
@Constraint(validatedBy = PasswordValidator.class)
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PasswordCheck {
String message() default "영어 소문자 길이는 4~12만 허용합니다.";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
import org.springframework.util.StringUtils;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class PasswordValidator implements ConstraintValidator<PasswordCheck, String> {
@Override
public void initialize(PasswordCheck constraintAnnotation) {
ConstraintValidator.super.initialize(constraintAnnotation);
}
@Override
public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
String onlyEng = "^[a-z]*$";
//영어 소문자만 길이는 4~12만 허용합니다.
return StringUtils.hasText(s) && s.matches(onlyEng) && (s.length() > 4) &&(s.length() < 12 );
}
}
PasswordCheck 어노테이션을 만들어 원하는 문구를 작성하고 체크할 유효성을 PasswordValidator도 만든다.
체크할 필드에 선언을 하고 사용하면된다.
이런식으로 사용 가능하다.
참고