Class CustomEditorConfigurer
- All Implemented Interfaces:
BeanFactoryPostProcessor,org.springframework.core.Ordered
BeanFactoryPostProcessor implementation that allows for convenient
registration of custom property editors.
In case you want to register PropertyEditor instances,
the recommended usage as of Spring 2.0 is to use custom
PropertyEditorRegistrar implementations that in turn register any
desired editor instances on a given
registry. Each
PropertyEditorRegistrar can register any number of custom editors.
<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="propertyEditorRegistrars">
<list>
<bean class="mypackage.MyCustomDateEditorRegistrar"/>
<bean class="mypackage.MyObjectEditorRegistrar"/>
</list>
</property>
</bean>
It's perfectly fine to register PropertyEditor classes via
the customEditors property. Spring will create fresh instances of
them for each editing attempt then:
<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="java.util.Date" value="mypackage.MyCustomDateEditor"/>
<entry key="mypackage.MyObject" value="mypackage.MyObjectEditor"/>
</map>
</property>
</bean>
Note, that you shouldn't register PropertyEditor bean instances via
the customEditors property as PropertyEditors are stateful
and the instances will then have to be synchronized for every editing
attempt. In case you need control over the instantiation process of
PropertyEditors, use a PropertyEditorRegistrar to register
them.
Also supports "java.lang.String[]"-style array class names and primitive
class names (for example, "boolean"). Delegates to ClassUtils for actual
class name resolution.
NOTE: Custom property editors registered with this configurer do
not apply to data binding. Custom editors for data binding need to
be registered on the
invalid reference
org.springframework.validation.DataBinder
- Since:
- 27.02.2004
- Author:
- Juergen Hoeller
- See Also:
-
Field Summary
FieldsFields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintgetOrder()voidpostProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) Modify the application context's internal bean factory after its standard initialization.voidsetCustomEditors(Map<Class<?>, Class<? extends PropertyEditor>> customEditors) Specify the custom editors to register via aMap, using the class name of the required type as the key and the class name of the associatedPropertyEditoras value.voidsetOrder(int order) voidsetPropertyEditorRegistrars(PropertyEditorRegistrar[] propertyEditorRegistrars) Specify thePropertyEditorRegistrarsto apply to beans defined within the current application context.
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
CustomEditorConfigurer
public CustomEditorConfigurer()
-
-
Method Details
-
setOrder
public void setOrder(int order) -
getOrder
public int getOrder()- Specified by:
getOrderin interfaceorg.springframework.core.Ordered
-
setPropertyEditorRegistrars
Specify thePropertyEditorRegistrarsto apply to beans defined within the current application context.This allows for sharing
PropertyEditorRegistrarswith, etc. Furthermore, it avoids the need for synchronization on custom editors: Ainvalid reference
DataBindersPropertyEditorRegistrarwill always create fresh editor instances for each bean creation attempt.- See Also:
-
setCustomEditors
Specify the custom editors to register via aMap, using the class name of the required type as the key and the class name of the associatedPropertyEditoras value.- See Also:
-
postProcessBeanFactory
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException Description copied from interface:BeanFactoryPostProcessorModify the application context's internal bean factory after its standard initialization. All bean definitions will have been loaded, but no beans will have been instantiated yet. This allows for overriding or adding properties even to eager-initializing beans.- Specified by:
postProcessBeanFactoryin interfaceBeanFactoryPostProcessor- Parameters:
beanFactory- the bean factory used by the application context- Throws:
BeansException- in case of errors
-