Validator

μ •μ˜

public interface Validator {
	boolean supports(Class<?> clazz); // 검증 κ°€λŠ₯ μ—¬λΆ€ 확인
	void validate(Object target,Errors errors); // 검증
}

μš”μ²­ νŒŒλΌλ―Έν„°μ— λŒ€ν•΄ 검증 κ°€λŠ₯ν•œ 객체인지 ν™•μΈν•˜κ³  κ²€μ¦ν•˜λŠ” 역할을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€

두 κ°€μ§€ 방법을 μ‚¬μš©ν•  수 μžˆλ‹€.

  1. μ „μ—­ λ²”μœ„μ— λŒ€ν•œ 검증을 μˆ˜ν–‰

  2. 일뢀(컨트둀러) λ²”μœ„μ— λŒ€ν•œ 검증을 μˆ˜ν–‰

κ΅¬ν˜„

Validator μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜λŠ” 클래슀λ₯Ό μ„ μ–Έν•œλ‹€.

import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

public class RegisterRequestValidator implements Validator {

    @Override
    public boolean supports(Class<?> clazz) {
        System.out.println("clazz: " + clazz.toString());
        return true;
    }

    @Override
    public void validate(Object target, Errors errors) {
        System.out.println("target: " + target.toString());
        System.out.println("errors: " + errors.toString());
    }

}

μ „μ—­ λ²”μœ„μ˜ Validator

Validatorλ₯Ό 톡해 μ „μ—­ λ²”μœ„μ— λŒ€ν•œ 검증을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄μ„œ λ‹€μŒκ³Ό 같이 이름이 μ •ν•΄μ§„ 빈으둜 λ“±λ‘ν•œλ‹€.

1. @Configuration λ‚΄ Bean으둜 직접 등둝 (getValidator λ©”μ†Œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ”©ν•΄μ•Ό 함)

2. 검증이 ν•„μš”ν•œ 컨트둀러 λ‚΄ λ©”μ†Œλ“œμ— @Valid μ–΄λ…Έν…Œμ΄μ…˜ μ‚¬μš©

컨트둀러 λ²”μœ„μ˜ Validator

Validatorλ₯Ό 톡해 컨트둀러 λ²”μœ„μ— λŒ€ν•œ 검증을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄μ„œ @InitBinder μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•œλ‹€.

ν•΄λ‹Ή 컨트둀러 λ‚΄ λͺ¨λ“  λ©”μ„œλ“œμ— Validation이 μ μš©λœλ‹€.

Last updated