検証

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) 実装に基づいて順番に呼び出されます。