public class LocalValidatorFactoryBean extends SpringValidatorAdapter implements ValidatorFactoryEE, ApplicationContextAware, InitializingBean, DisposableBean
javax.validation
(JSR-303)セットアップの中心的なクラスです。javax.validation.ValidationFactory
をブートストラップし、Spring Validator
インターフェースと、JSR-303 Validator
EE インターフェースおよび ValidatorFactory
EE インターフェース自体を介して公開します。Spring または JSR-303 Validator インターフェースを介してこの Bean のインスタンスと通信するときは、基礎となる ValidatorFactory のデフォルトの Validator と通信します。デフォルトのバリデーターをほとんど常に使用すると仮定すると、ファクトリでさらに別の呼び出しを実行する必要がないという点で、これは非常に便利です。これは、型 Validator
のターゲット依存関係に直接挿入することもできます。
Spring 5.0 の時点で、このクラスには Bean 検証 1.1 + が必要であり、Hibernate バリデーター 5.x が特別にサポートされています(setValidationMessageSource(org.springframework.context.MessageSource)
を参照)。このクラスは、Bean 検証 2.0 および Hibernate バリデーター 6.0 ともランタイム互換ですが、特筆すべき点が 1 つあります。BV 2.0 の getClockProvider()
メソッドを呼び出す場合は、#unwrap(ValidatorFactory.class)
を介してネイティブ ValidatorFactory
を取得し、そこで返されたネイティブ参照で getClockProvider()
メソッドを呼び出します。
このクラスは、javax.validation
API は存在するが明示的な Validator が構成されていない場合に、Spring の MVC 構成名前空間でも使用されます。
ValidatorFactory
EE, Validator
EE, Validation.buildDefaultValidatorFactory()
EE, ValidatorFactory.getValidator()
EEコンストラクターと説明 |
---|
LocalValidatorFactoryBean() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() 指定されたすべての Bean プロパティを設定した(そして BeanFactoryAware と ApplicationContextAware を満たした)後に BeanFactory によって呼び出されます。 |
void | close() |
void | destroy() シングルトンの破棄時に BeanFactory によって呼び出されます。 |
ConstraintValidatorFactoryEE | getConstraintValidatorFactory() |
MessageInterpolatorEE | getMessageInterpolator() |
ParameterNameProviderEE | getParameterNameProvider() |
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 ValidationProviderResolver EE を指定します。 |
<T> T | unwrap(ClassSE<T> type) |
ValidatorContextEE | usingContext() |
determineErrorCode, determineField, forExecutables, getArgumentsForConstraint, getConstraintsForClass, getRejectedValue, getResolvableField, processConstraintViolations, supports, validate, validate, validate, validateProperty, validateValue
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setProviderClass(ClassSE providerClass)
指定しない場合、JSR-303 のデフォルトの検索メカニズムが使用されます。
public void setValidationProviderResolver(ValidationProviderResolverEE validationProviderResolver)
META-INF
による解決の代わりに、選択したプロバイダーをブートストラップするための JSR-303 ValidationProviderResolver
EE を指定します。public void setMessageInterpolator(MessageInterpolatorEE messageInterpolator)
public void setValidationMessageSource(MessageSource messageSource)
注意 : この機能には、クラスパスに Hibernate Validator 4.3 以上が必要です。それでも別の検証プロバイダーを使用することはできますが、Hibernate Validator の ResourceBundleMessageInterpolator
クラスは構成中にアクセス可能でなければなりません。
このプロパティまたは "messageInterpolator"
のいずれかを指定します。両方を指定することはできません。カスタム MessageInterpolator を作成する場合は、Hibernate Validator の ResourceBundleMessageInterpolator
から派生させ、補間器を構築するときに Spring ベースの ResourceBundleLocator
を渡すことを検討してください。
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(@Nullable 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 オブジェクト BeanInitializationException
public void afterPropertiesSet()
InitializingBean
このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されている場合にのみ可能な初期化を実行し、設定ミスの場合に例外をスローできます。
InitializingBean
の afterPropertiesSet
protected void postProcessConfiguration(ConfigurationEE<?> configuration)
ValidatorFactory
EE をビルドする直前に呼び出されます。
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 ParameterNameProviderEE getParameterNameProvider()
ValidatorFactoryEE
の getParameterNameProviderEE
public <T> T unwrap(@Nullable ClassSE<T> type)
ValidatorEE
の unwrapEE
ValidatorFactoryEE
の unwrapEE
SpringValidatorAdapter
の unwrap
public void close()
ValidatorFactoryEE
の closeEE
public void destroy()
DisposableBean
DisposableBean
の destroy