此版本仍在开发中,尚未被视为稳定版。如需最新稳定版本,请使用 Spring Framework 7.0.6spring-doc.cadn.net.cn

验证

默认情况下,如果类路径中存在Bean Validation(例如 Hibernate Validator),则会注册LocalValidatorFactoryBean作为全局Validator,用于在控制器方法参数上使用@Valid@Validatedspring-doc.cadn.net.cn

您可以自定义全局的 Validator 实例,如下例所示:spring-doc.cadn.net.cn

@Configuration
public class WebConfiguration implements WebMvcConfigurer {

	@Override
	public Validator getValidator() {
		Validator validator = new OptionalValidatorFactoryBean();
		// ...
		return validator;
	}
}
@Configuration
class WebConfiguration : WebMvcConfigurer {

	override fun getValidator(): Validator {
		val validator = OptionalValidatorFactoryBean()
		// ...
		return validator
	}
}
<mvc:annotation-driven validator="globalValidator"/>

请注意,您也可以像下面示例所示那样,在本地注册Validator实现:spring-doc.cadn.net.cn

@Controller
public class MyController {

	@InitBinder
	public void initBinder(WebDataBinder binder) {
		binder.addValidators(new FooValidator());
	}
}
@Controller
class MyController {

	@InitBinder
	fun initBinder(binder: WebDataBinder) {
		binder.addValidators(FooValidator())
	}
}
如果您需要在某处注入一个 LocalValidatorFactoryBean,请创建一个 bean 并用 @Primary 进行标记,或者将 MVC 配置中声明的该组件用 @Fallback 进行标记,以避免冲突。