public class LocalValidatorFactoryBean extends SpringValidatorAdapter implements ValidatorFactoryEE, ApplicationContextAware, InitializingBean, DisposableBean
javax.validation (JSR-303)セットアップの中心的なクラスです。javax.validation.ValidationFactory をブートストラップし、Spring Validator インターフェースと、JSR-303 ValidatorEE インターフェースおよび ValidatorFactoryEE インターフェース自体を介して公開します。Spring または JSR-303 Validator インターフェースを介してこの Bean のインスタンスと通信するときは、基礎となる ValidatorFactory のデフォルトの Validator と通信します。デフォルトのバリデーターをほとんど常に使用すると仮定すると、ファクトリでさらに別の呼び出しを実行する必要がないという点で、これは非常に便利です。これは、型 Validator のターゲット依存関係に直接挿入することもできます。
Spring 4.0 以降、このクラスは Bean 検証 1.0 および 1.1 をサポートし、Hibernate 検証 4.3 および 5.x を特別にサポートします (setValidationMessageSource(org.springframework.context.MessageSource) を参照)。
Bean 検証 1.1 の #forExecutables メソッドはサポートされていないことに注意してください。このメソッドがアプリケーションコードによって呼び出されることは想定されていません。代わりに MethodValidationInterceptor を検討してください。プログラムによる #forExecutables アクセスが本当に必要な場合は、このクラスを ValidatorFactoryEE として挿入し、そのクラスで getValidator() を呼び出し、次にこのクラスで直接ではなく、返されたネイティブ ValidatorEE 参照で #forExecutables を呼び出します。または、ネイティブオブジェクトも提供する #unwrap(Validator.class) を呼び出します。
このクラスは、javax.validation API は存在するが明示的な Validator が構成されていない場合に、Spring の MVC 構成名前空間でも使用されます。
ValidatorFactoryEE, ValidatorEE, Validation.buildDefaultValidatorFactory()EE, ValidatorFactory.getValidator()EE| コンストラクターと説明 |
|---|
LocalValidatorFactoryBean() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() |
void | close() |
void | destroy()Bean の破棄時に、包含 BeanFactory によって呼び出されます。 |
ConstraintValidatorFactoryEE | getConstraintValidatorFactory() |
MessageInterpolatorEE | getMessageInterpolator() |
TraversableResolverEE | getTraversableResolver() |
MapSE<StringSE, StringSE> | getValidationPropertyMap() 特定のエントリを追加またはオーバーライドするオプションを使用して、マップが Bean 検証プロパティへのアクセスを検証プロバイダーに渡すことを許可します。 |
ValidatorEE | getValidator() |
protected void | postProcessConfiguration(ConfigurationEE<?> configuration) 指定された Bean 検証構成を後処理し、その設定を追加または上書きします。 |
void | setApplicationContext(ApplicationContext applicationContext) このオブジェクトが実行される ApplicationContext を設定します。 |
void | setConstraintValidatorFactory(ConstraintValidatorFactoryEE constraintValidatorFactory) この ValidatorFactory に使用するカスタム ConstraintValidatorFactory を指定します。 |
void | setMappingLocations(Resource... mappingLocations)XML 制約マッピングファイルをロードするリソースの場所を指定します(ある場合)。 |
void | setMessageInterpolator(MessageInterpolatorEE messageInterpolator) この ValidatorFactory とその公開されたデフォルトバリデーターに使用するカスタム MessageInterpolator を指定します。 |
void | setParameterNameDiscoverer(ParameterNameDiscoverer parameterNameDiscoverer) メッセージの補間に必要な場合は、メソッドとコンストラクターのパラメーター名の解決に使用する ParameterNameDiscoverer を設定します。 |
void | setProviderClass(ClassSE providerClass) 必要に応じて、必要なプロバイダークラスを指定します。 |
void | setTraversableResolver(TraversableResolverEE traversableResolver) この ValidatorFactory とその公開されたデフォルトバリデーターに使用するカスタム TraversableResolver を指定します。 |
void | setValidationMessageSource(MessageSource messageSource) クラスパスの JSR-303 のデフォルトの "ValidationMessages.properties" バンドルに依存する代わりに、検証メッセージを解決するためのカスタム Spring MessageSource を指定します。 |
void | setValidationProperties(PropertiesSE jpaProperties) 検証プロバイダーに渡される Bean 検証プロパティを指定します。 |
void | setValidationPropertyMap(MapSE<StringSE, StringSE> validationProperties) 検証プロバイダーにマップとして渡される Bean 検証プロパティを指定します。 |
void | setValidationProviderResolver(ValidationProviderResolverEE validationProviderResolver)META-INF による解決の代わりに、選択したプロバイダーをブートストラップするための JSR-303 ValidationProviderResolverEE を指定します。 |
<T> T | unwrap(ClassSE<T> type) |
ValidatorContextEE | usingContext() |
determineErrorCode, determineField, getArgumentsForConstraint, getConstraintsForClass, getRejectedValue, getResolvableField, processConstraintViolations, supports, validate, validate, validate, validateProperty, validateValuecloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic void setProviderClass(ClassSE providerClass)
指定しない場合、JSR-303 のデフォルトの検索メカニズムが使用されます。
public void setValidationProviderResolver(ValidationProviderResolverEE validationProviderResolver)
META-INF による解決の代わりに、選択したプロバイダーをブートストラップするための JSR-303 ValidationProviderResolverEE を指定します。public void setMessageInterpolator(MessageInterpolatorEE messageInterpolator)
public void setValidationMessageSource(MessageSource messageSource)
注意 : この機能には、クラスパスに Hibernate Validator 4.3 以上が必要です。それでも別の検証プロバイダーを使用することはできますが、Hibernate Validator の ResourceBundleMessageInterpolator クラスは構成中にアクセス可能でなければなりません。
このプロパティまたは "messageInterpolator" のいずれかを指定します。両方を指定することはできません。カスタム MessageInterpolator を作成する場合は、Hibernate Validator の ResourceBundleMessageInterpolator から派生させ、補間器を構築するときに Spring ベースの ResourceBundleLocator を渡すことを検討してください。
Hibernate のデフォルトの検証メッセージを引き続き解決するには、MessageSource をオプションの解決(通常はデフォルト)に構成する必要があります。特に、ここで指定された MessageSource インスタンスは "useCodeAsDefaultMessage" の動作を適用しないでください。それに応じて設定を再確認してください。
public void setTraversableResolver(TraversableResolverEE traversableResolver)
public void setConstraintValidatorFactory(ConstraintValidatorFactoryEE constraintValidatorFactory)
デフォルトは SpringConstraintValidatorFactory であり、オートワイヤーされた ConstraintValidator インスタンスを作成するために、それを含む ApplicationContext に委譲します。
public void setParameterNameDiscoverer(ParameterNameDiscoverer parameterNameDiscoverer)
デフォルトは DefaultParameterNameDiscoverer です。
public void setMappingLocations(Resource... mappingLocations)
public void setValidationProperties(PropertiesSE jpaProperties)
文字列 "value" (PropertiesEditor で解析)または XML Bean 定義の "props" 要素を入力できます。
public void setValidationPropertyMap(MapSE<StringSE,StringSE> validationProperties)
XML Bean 定義の「マップ」または "props" 要素を取り込むことができます。
public MapSE<StringSE,StringSE> getValidationPropertyMap()
たとえば "validationPropertyMap [myKey]" を介してエントリを直接指定するのに便利です。
public void setApplicationContext(ApplicationContext applicationContext)
ApplicationContextAware 通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)、ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher) および MessageSourceAware の後に呼び出されます(該当する場合)。
ApplicationContextAware の setApplicationContext applicationContext - このオブジェクトによって使用される ApplicationContext オブジェクト BeanInitializationExceptionpublic void afterPropertiesSet()
InitializingBeanBeanFactoryAware、ApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean の afterPropertiesSet protected void postProcessConfiguration(ConfigurationEE<?> configuration)
ValidatorFactoryEE をビルドする直前に呼び出されます。
configuration - LocalValidatorFactoryBean のプロパティによって駆動される設定が事前に入力された構成オブジェクト public ValidatorEE getValidator()
ValidatorFactoryEE の getValidatorEE public ValidatorContextEE usingContext()
ValidatorFactoryEE の usingContextEE public MessageInterpolatorEE getMessageInterpolator()
ValidatorFactoryEE の getMessageInterpolatorEE public TraversableResolverEE getTraversableResolver()
ValidatorFactoryEE の getTraversableResolverEE public ConstraintValidatorFactoryEE getConstraintValidatorFactory()
ValidatorFactoryEE の getConstraintValidatorFactoryEE public <T> T unwrap(ClassSE<T> type)
ValidatorEE の unwrapEE ValidatorFactoryEE の unwrapEE SpringValidatorAdapter の unwrap public void close()
public void destroy()
DisposableBeanBeanFactory によって呼び出されます。DisposableBean の destroy