验证

默认情况下,如果类路径中存在Bean验证(例如,Hibernate Validator),则LocalValidatorFactoryBean将注册为全局Validator,用于控制器方法参数上的@Valid@Validated

您可以自定义全局Validator实例,如下例所示

@Configuration
public class WebConfiguration implements WebMvcConfigurer {

	@Override
	public Validator getValidator() {
		Validator validator = new OptionalValidatorFactoryBean();
		// ...
		return validator;
	}
}

请注意,您也可以局部注册Validator实现,如下例所示

@Controller
public class MyController {

	@InitBinder
	public void initBinder(WebDataBinder binder) {
		binder.addValidators(new FooValidator());
	}
}
如果您需要在某处注入LocalValidatorFactoryBean,请创建一个Bean并用@Primary标记它,以避免与MVC配置中声明的Bean冲突。