public class CustomEditorConfigurer extends ObjectSE implements BeanFactoryPostProcessor, Ordered
property editors
SE の便利な登録を可能にする BeanFactoryPostProcessor
実装。PropertyEditor
SE インスタンスを登録する場合、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
SE クラスを登録しても問題ありません。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
SE はステートフルであるため、PropertyEditor
SE Bean インスタンスは customEditors
プロパティを介して登録しないでください。インスタンスを編集するたびにインスタンスを同期する必要があります。PropertyEditors
SE のインスタンス化プロセスを制御する必要がある場合は、PropertyEditorRegistrar
を使用して登録します。
"java.lang.String[]" -style 配列クラス名とプリミティブクラス名もサポートします( "boolean" など)。実際のクラス名解決のために ClassUtils
にデリゲートします。
注 : この構成に登録されているカスタムプロパティエディターは、データバインディングには適用されません。データバインディング用のカスタムエディターは DataBinder
に登録する必要があります。共通の基本クラスを使用するか、共通の PropertyEditorRegistrar 実装に委譲して、そこでエディターの登録を再利用します。
PropertyEditor
SE, 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(MapSE<ClassSE<?>,ClassSE<? extends PropertyEditorSE>> customEditors) 必要な型のクラス名をキーとして使用し、関連する PropertyEditor SE のクラス名を値として使用して、Map SE を介して登録するカスタムエディターを指定します。 |
void | setOrder(int order) |
void | setPropertyEditorRegistrars(PropertyEditorRegistrar[] propertyEditorRegistrars) 現在のアプリケーションコンテキスト内で定義された Bean に適用する PropertyEditorRegistrars を指定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
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(MapSE<ClassSE<?>,ClassSE<? extends PropertyEditorSE>> customEditors)
PropertyEditor
SE のクラス名を値として使用して、Map
SE を介して登録するカスタムエディターを指定します。public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
BeanFactoryPostProcessor
BeanFactoryPostProcessor
の postProcessBeanFactory
beanFactory
- アプリケーションコンテキストで使用される Bean ファクトリ BeansException
- エラーの場合