検証
Bean バリデーション 1.1 でサポートされているメソッド検証機能は、JSR-303 実装 (Hibernate バリデータなど) がクラスパス上にある限り、自動的に有効になります。これにより、Bean メソッドのパラメーターや戻り値に jakarta.validation
制約をアノテーションとして付けることができます。このようなアノテーション付きメソッドを持つターゲットクラスは、そのメソッドでインライン制約アノテーションを検索するには、型レベルで @Validated
(Javadoc) アノテーションを付ける必要があります。
たとえば、次のサービスは最初の引数の検証をトリガーし、そのサイズが 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
}
}
アプリケーションの MessageSource
(Javadoc) は、制約メッセージ内の {parameters}
を解決するときに使用されます。これにより、アプリケーションの messages.properties
ファイルを Bean 検証メッセージに使用できます。パラメーターが解決されると、Bean 検証のデフォルトのインターポレータを使用してメッセージのインターポレーションが完了します。
ValidatorFactory
(英語) の構築に使用される Configuration
(英語) をカスタマイズするには、ValidationConfigurationCustomizer
(Javadoc) Bean を定義します。複数のカスタマイザー Bean が定義されている場合、@Order
(Javadoc) アノテーションまたは Ordered
(Javadoc) 実装に基づいて順番に呼び出されます。