验证
只要类路径上存在 JSR-303 实现(例如 Hibernate validator),Bean Validation 1.1 支持的方法验证功能就会自动启用。这允许 bean 方法在其参数和/或返回值上使用 `jakarta.validation` 约束进行注解。具有此类带注解方法的目标类需要在其类型级别使用 `@Validated` 注解进行注解,以便搜索其方法中的内联约束注解。
例如,以下服务会触发对第一个参数的验证,确保其大小在 8 到 10 之间
-
Java
-
Kotlin
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
}
}
在解析约束消息中的{parameters}
时,应用程序使用MessageSource
。这允许您使用应用程序的messages.properties
文件作为Bean Validation消息。参数解析完成后,将使用Bean Validation的默认插值器完成消息插值。
要自定义用于构建ValidatorFactory
的Configuration
,请定义一个ValidationConfigurationCustomizer
bean。当定义多个自定义bean时,将根据其@Order
注解或Ordered
实现按顺序调用它们。