public class CustomEditorConfigurer extends java.lang.Object implements BeanFactoryPostProcessor, Ordered
property editors
の便利な登録を可能にする BeanFactoryPostProcessor
実装。PropertyEditor
インスタンスを登録する場合、Spring 2.0 の時点で推奨される使用箇所は、カスタム PropertyEditorRegistrar
実装を使用することです。これにより、特定の registry
に任意のエディターインスタンスが登録されます。各 PropertyEditorRegistrar は、任意の数のカスタムエディターを登録できます。
<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>
customEditors
プロパティを介して PropertyEditor
クラスを登録することはまったく問題ありません。Spring は、編集を試みるたびにそれらの新しいインスタンスを作成します。
<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>
PropertyEditors
はステートフルであり、編集を試みるたびにインスタンスを同期する必要があるため、customEditors
プロパティを介して PropertyEditor
Bean インスタンスを登録しないでください。PropertyEditors
のインスタンス化プロセスを制御する必要がある場合は、PropertyEditorRegistrar
を使用して登録します。
"java.lang.String[]" -style 配列クラス名とプリミティブクラス名もサポートします( "boolean" など)。実際のクラス名解決のために ClassUtils
にデリゲートします。
注 : この構成に登録されているカスタムプロパティエディターは、データバインディングには適用されません。データバインディング用のカスタムエディターは DataBinder
に登録する必要があります。共通の基本クラスを使用するか、共通の PropertyEditorRegistrar 実装に委譲して、そこでエディターの登録を再利用します。
PropertyEditor
, PropertyEditorRegistrar
, ConfigurableBeanFactory.addPropertyEditorRegistrar(org.springframework.beans.PropertyEditorRegistrar)
, ConfigurableBeanFactory.registerCustomEditor(java.lang.Class<?>, java.lang.Class<? extends java.beans.PropertyEditor>)
, DataBinder.registerCustomEditor(java.lang.Class<?>, java.beans.PropertyEditor)
修飾子と型 | フィールドと説明 |
---|---|
protected Log | logger |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターと説明 |
---|
CustomEditorConfigurer() |
修飾子と型 | メソッドと説明 |
---|---|
int | getOrder() このオブジェクトの順序値を取得します。 |
void | postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) 標準の初期化後に、アプリケーションコンテキストの内部 Bean ファクトリを変更します。 |
void | setCustomEditors(java.util.Map<java.lang.Class<?>,java.lang.Class<? extends java.beans.PropertyEditor>> customEditors) 必要な型のクラス名をキーとして使用し、関連する PropertyEditor のクラス名を値として使用して、Map を介して登録するカスタムエディターを指定します。 |
void | setOrder(int order) |
void | setPropertyEditorRegistrars(PropertyEditorRegistrar[] propertyEditorRegistrars) 現在のアプリケーションコンテキスト内で定義された Bean に適用する PropertyEditorRegistrars を指定します。 |
protected final Log logger
public void setOrder(int order)
public int getOrder()
Ordered
値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット load-on-startup
の値に多少似ています)。
同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
Ordered
の getOrder
Ordered.HIGHEST_PRECEDENCE
, Ordered.LOWEST_PRECEDENCE
public void setPropertyEditorRegistrars(PropertyEditorRegistrar[] propertyEditorRegistrars)
PropertyEditorRegistrars
を指定します。 これにより、PropertyEditorRegistrars
を DataBinders
などと共有できます。さらに、カスタムエディターで同期する必要がなくなります。PropertyEditorRegistrar
は、Bean を作成するたびに常に新しいエディターインスタンスを作成します。
public void setCustomEditors(java.util.Map<java.lang.Class<?>,java.lang.Class<? extends java.beans.PropertyEditor>> customEditors)
PropertyEditor
のクラス名を値として使用して、Map
を介して登録するカスタムエディターを指定します。public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
BeanFactoryPostProcessor
BeanFactoryPostProcessor
の postProcessBeanFactory
beanFactory
- アプリケーションコンテキストで使用される Bean ファクトリ BeansException
- エラーの場合