验证

只要 JSR-303 实现(例如 Hibernate 验证器)在类路径上,Bean Validation 1.1 支持的方法验证功能就会自动启用。 这允许使用jakarta.validation对其参数和/或返回值的约束。 具有此类注释方法的目标类需要使用@Validated类型级别的注释,以便搜索其方法以查找内联约束注释。spring-doc.cadn.net.cn

例如,以下服务触发第一个参数的验证,确保其大小在 8 到 10 之间:spring-doc.cadn.net.cn

import jakarta.validation.constraints.Size;

import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

@Service
@Validated
public class MyBean {

	public Archive findByCodeAndAuthor(@Size(min = 8, max = 10) String code, Author author) {
		return ...
	}

}
import jakarta.validation.constraints.Size
import org.springframework.stereotype.Service
import org.springframework.validation.annotation.Validated

@Service
@Validated
class MyBean {

	fun findByCodeAndAuthor(code: @Size(min = 8, max = 10) String?, author: Author?): Archive? {
		return null
	}

}

应用程序的MessageSource在解析时使用{parameters}在约束消息中。 这允许您使用您的应用程序的messages.properties文件用于 Bean 验证消息。 一旦参数被解析,将使用 Bean Validation 的默认插值器完成消息插值。spring-doc.cadn.net.cn

要自定义Configuration用于构建ValidatorFactory,定义一个ValidationConfigurationCustomizer豆。 当定义了多个定制器 Bean 时,它们会根据其@Order注释或Ordered实现。spring-doc.cadn.net.cn