## org.springframework.validation.beanvalidation
Class LocalValidatorFactoryBean

    java.lang.Object
      org.springframework.validation.beanvalidation.SpringValidatorAdapter
          org.springframework.validation.beanvalidation.LocalValidatorFactoryBean

All Implemented Interfaces:
  javax.validation.Validator, javax.validation.ValidatorFactory, InitializingBean, ApplicationContextAware

    public class LocalValidatorFactoryBean

extends SpringValidatorAdapter
implements javax.validation.ValidatorFactory, ApplicationContextAware, InitializingBean

This is the central class for `javax.validation` (JSR-303) setup in a Spring application context: It bootstraps a `javax.validation.ValidationFactory` and exposes it through the Spring `Validator` interface as well as through the JSR-303 `Validator` interface and the `ValidatorFactory` interface itself.

When talking to an instance of this bean through the Spring or JSR-303 Validator interfaces, you'll be talking to the default Validator of the underlying ValidatorFactory. This is very convenient in that you don't have to perform yet another call on the factory, assuming that you will almost always use the default Validator anyway. This can also be injected directly into any target dependency of type `Validator`!

Since:
  3.0
Author:
  Juergen Hoeller
See Also:
  `ValidatorFactory`, `Validator`, `Validation.buildDefaultValidatorFactory()`, `ValidatorFactory.getValidator()`

Constructor Summary
`LocalValidatorFactoryBean()`

Method Summary
`void` `afterPropertiesSet()` Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
`javax.validation.ConstraintValidatorFactory` `getConstraintValidatorFactory()`
`javax.validation.MessageInterpolator` `getMessageInterpolator()`
`javax.validation.TraversableResolver` `getTraversableResolver()`
`Map<String,String>` `getValidationPropertyMap()` Allow Map access to the bean validation properties to be passed to the validation provider, with the option to add or override specific entries.
`javax.validation.Validator` `getValidator()`
`void` `setApplicationContext(ApplicationContext applicationContext)` Set the ApplicationContext that this object runs in.
`void` `setConstraintValidatorFactory(javax.validation.ConstraintValidatorFactory constraintValidatorFactory)` Specify a custom ConstraintValidatorFactory to use for this ValidatorFactory.
`void` `setMappingLocations(Resource[] mappingLocations)` Specify resource locations to load XML constraint mapping files from, if any.
`void` `setMessageInterpolator(javax.validation.MessageInterpolator messageInterpolator)` Specify a custom MessageInterpolator to use for this ValidatorFactory and its exposed default Validator.
`void` `setProviderClass(Class<? extends javax.validation.spi.ValidationProvider> providerClass)` Specify the desired provider class, if any.
`void` `setTraversableResolver(javax.validation.TraversableResolver traversableResolver)` Specify a custom TraversableResolver to use for this ValidatorFactory and its exposed default Validator.
`void` `setValidationMessageSource(MessageSource messageSource)` Specify a custom Spring MessageSource for resolving validation messages, instead of relying on JSR-303's default "ValidationMessages.properties" bundle in the classpath.
`void` `setValidationProperties(Properties jpaProperties)` Specify bean validation properties to be passed to the validation provider.
`void` `setValidationPropertyMap(Map<String,String> validationProperties)` Specify bean validation properties to be passed to the validation provider as a Map.
`javax.validation.ValidatorContext` `usingContext()`

Methods inherited from class org.springframework.validation.beanvalidation.SpringValidatorAdapter
`getArgumentsForConstraint, getConstraintsForClass, supports, unwrap, validate, validate, validateProperty, validateValue`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface javax.validation.ValidatorFactory
`unwrap`

Constructor Detail

### LocalValidatorFactoryBean

    public LocalValidatorFactoryBean()

Method Detail

### setProviderClass

    public void setProviderClass(Class<? extends javax.validation.spi.ValidationProvider> providerClass)

  Specify the desired provider class, if any.

  If not specified, JSR-303's default search mechanism will be used.

  See Also:
    `Validation.byProvider(Class)`, `Validation.byDefaultProvider()`

### setMessageInterpolator

    public void setMessageInterpolator(javax.validation.MessageInterpolator messageInterpolator)

  Specify a custom MessageInterpolator to use for this ValidatorFactory and its exposed default Validator.

### setValidationMessageSource

    public void setValidationMessageSource(MessageSource messageSource)

  Specify a custom Spring MessageSource for resolving validation messages, instead of relying on JSR-303's default "ValidationMessages.properties" bundle in the classpath. This may refer to a Spring context's shared "messageSource" bean, or to some special MessageSource setup for validation purposes only.

  NOTE: This feature requires Hibernate Validator 4.1 or higher on the classpath. You may nevertheless use a different validation provider but Hibernate Validator's `ResourceBundleMessageInterpolator` class must be accessible during configuration.

  Specify either this property or `"messageInterpolator"`, not both. If you would like to build a custom MessageInterpolator, consider deriving from Hibernate Validator's `ResourceBundleMessageInterpolator` and passing in a Spring `MessageSourceResourceBundleLocator` when constructing your interpolator.

  See Also:
    `ResourceBundleMessageInterpolator`, `MessageSourceResourceBundleLocator`

### setTraversableResolver

    public void setTraversableResolver(javax.validation.TraversableResolver traversableResolver)

  Specify a custom TraversableResolver to use for this ValidatorFactory and its exposed default Validator.

### setConstraintValidatorFactory

    public void setConstraintValidatorFactory(javax.validation.ConstraintValidatorFactory constraintValidatorFactory)

  Specify a custom ConstraintValidatorFactory to use for this ValidatorFactory.

  Default is a `SpringConstraintValidatorFactory`, delegating to the containing ApplicationContext for creating autowired ConstraintValidator instances.

### setMappingLocations

    public void setMappingLocations(Resource[] mappingLocations)

  Specify resource locations to load XML constraint mapping files from, if any.

### setValidationProperties

    public void setValidationProperties(Properties jpaProperties)

  Specify bean validation properties to be passed to the validation provider.

  Can be populated with a String "value" (parsed via PropertiesEditor) or a "props" element in XML bean definitions.

  See Also:
    `Configuration.addProperty(String, String)`

### setValidationPropertyMap

    public void setValidationPropertyMap(Map<String,String> validationProperties)

  Specify bean validation properties to be passed to the validation provider as a Map.

  Can be populated with a "map" or "props" element in XML bean definitions.

  See Also:
    `Configuration.addProperty(String, String)`

### getValidationPropertyMap

    public Map<String,String> getValidationPropertyMap()

  Allow Map access to the bean validation properties to be passed to the validation provider, with the option to add or override specific entries.

  Useful for specifying entries directly, for example via "validationPropertyMap[myKey]".

### setApplicationContext

    public void setApplicationContext(ApplicationContext applicationContext)

  Description copied from interface: `ApplicationContextAware`
  Set the ApplicationContext that this object runs in. Normally this call will be used to initialize the object.

  Invoked after population of normal bean properties but before an init callback such as `InitializingBean.afterPropertiesSet()` or a custom init-method. Invoked after `ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)`, `ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)` and `MessageSourceAware`, if applicable.

  Specified by:
    `setApplicationContext` in interface `ApplicationContextAware`
  Parameters:
    `applicationContext` - the ApplicationContext object to be used by this object
  See Also:
    `BeanInitializationException`

### afterPropertiesSet

    public void afterPropertiesSet()

  Description copied from interface: `InitializingBean`
  Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

  This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

  Specified by:
    `afterPropertiesSet` in interface `InitializingBean`

### getValidator

    public javax.validation.Validator getValidator()

  Specified by:
    `getValidator` in interface `javax.validation.ValidatorFactory`

### usingContext

    public javax.validation.ValidatorContext usingContext()

  Specified by:
    `usingContext` in interface `javax.validation.ValidatorFactory`

### getMessageInterpolator

    public javax.validation.MessageInterpolator getMessageInterpolator()

  Specified by:
    `getMessageInterpolator` in interface `javax.validation.ValidatorFactory`

### getTraversableResolver

    public javax.validation.TraversableResolver getTraversableResolver()

  Specified by:
    `getTraversableResolver` in interface `javax.validation.ValidatorFactory`

### getConstraintValidatorFactory

    public javax.validation.ConstraintValidatorFactory getConstraintValidatorFactory()

  Specified by:
    `getConstraintValidatorFactory` in interface `javax.validation.ValidatorFactory`