Validation

Dev.Hammy·2024년 4월 8일
0

반응형 스택에서 이에 상응하는 내용 보기

기본적으로 Bean 유효성 검사가 클래스 경로(예: Hibernate Validator)에 존재하는 경우 LocalValidatorFactoryBean은 컨트롤러 메서드 인수에서 @Valid@Validated와 함께 사용하기 위한 전역 유효성 검사기로 등록됩니다.

Java 구성에서는 다음 예제와 같이 전역 Validator 인스턴스를 사용자 정의할 수 있습니다.

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

	@Override
	public Validator getValidator() {
		// ...
	}
}

다음 예에서는 XML에서 동일한 구성을 달성하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans
		https://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/mvc
		https://www.springframework.org/schema/mvc/spring-mvc.xsd">

	<mvc:annotation-driven validator="globalValidator"/>

</beans>

다음 예제와 같이 Validator 구현을 로컬로 등록할 수도 있습니다.

@Controller
public class MyController {

	@InitBinder
	protected void initBinder(WebDataBinder binder) {
		binder.addValidators(new FooValidator());
	}
}

[Tip]
LocalValidatorFactoryBean을 어딘가에 주입해야 하는 경우 MVC 구성에 선언된 항목과의 충돌을 피하기 위해 Bean을 생성하고 @Primary로 표시합니다.

0개의 댓글