クラス PlaceholderConfigurerSupport
- 実装されたすべてのインターフェース:
Aware
、BeanFactoryAware
、BeanNameAware
、BeanFactoryPostProcessor
、Ordered
、PriorityOrdered
デフォルトのプレースホルダー構文は、Ant/Log4J/JSP EL スタイルに従います。
${...}XML Bean 定義の例:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${driver}" /> <property name="url" value="jdbc:${dbname}" /> </bean>プロパティファイルの例:
driver=com.mysql.jdbc.Driver dbname=mysql:mydbアノテーション付き Bean 定義は、
@Value
アノテーションを使用してプロパティ置換を利用できます。@Value("${person.age}")実装は、Bean 参照内の単純なプロパティ値、リスト、マップ、props、Bean 名をチェックします。さらに、プレースホルダー値は、次のような他のプレースホルダーを相互参照することもできます。
rootPath=myrootdir subPath=${rootPath}/subdir
PropertyOverrideConfigurer
とは対照的に、この型のサブクラスでは、Bean 定義に明示的なプレースホルダーを埋めることができます。 構成プログラムがプレースホルダーを解決できない場合、BeanDefinitionStoreException
がスローされます。複数のプロパティファイルに対してチェックする場合は、locations
プロパティを介して複数のリソースを指定します。それぞれ独自のプレースホルダー構文を持つ複数のコンフィギュレーターを定義することもできます。ignoreUnresolvablePlaceholders
を使用して、プレースホルダーを解決できない場合に意図的に例外のスローを抑制します。
デフォルトのプロパティ値は、properties
プロパティを介して各コンフィギュレータインスタンスに対してグローバルに定義できます。または、デフォルトで ":"
であり、setValueSeparator(String)
を介してカスタマイズ可能な値セパレータを使用して、プロパティごとに定義できます。
デフォルト値の XML プロパティの例:
<property name="url" value="jdbc:${dbname:defaultdb}" />
- 導入:
- 3.1
- 作成者:
- Chris Beams, Juergen Hoeller
- 関連事項:
フィールドサマリー
フィールド修飾子と型フィールド説明static final CharacterSE
デフォルトのエスケープ文字:'\'
.static final StringSE
デフォルトのプレースホルダープレフィックス: "${".static final StringSE
デフォルトのプレースホルダーサフィックス: "}".static final StringSE
デフォルト値セパレータ: ":".protected CharacterSE
デフォルトはDEFAULT_ESCAPE_CHARACTER
です。protected boolean
protected StringSE
protected StringSE
デフォルトは "${" です。protected StringSE
デフォルトは "}" です。protected boolean
protected StringSE
デフォルトは ":" です。クラス org.springframework.core.io.support.PropertiesLoaderSupport から継承されたフィールド
localOverride, localProperties, logger
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターのサマリー
コンストラクター方法の概要
修飾子と型メソッド説明protected void
doProcessProperties
(ConfigurableListableBeanFactory beanFactoryToProcess, StringValueResolver valueResolver) void
setBeanFactory
(BeanFactory beanFactory) プロパティファイルの場所にある解決できないプレースホルダーで失敗しないように、独自の Bean 定義を解析していないことを確認する必要があるだけです。void
setBeanName
(StringSE beanName) プロパティファイルの場所にある解決できないプレースホルダーで失敗しないように、独自の Bean 定義を解析していないことを確認する必要があるだけです。void
setEscapeCharacter
(CharacterSE escsEscapeCharacter) プレースホルダー接頭辞または値区切り文字を無視するために使用するエスケープ文字を指定します。エスケープを行わない場合はnull
を指定します。void
setIgnoreUnresolvablePlaceholders
(boolean ignoreUnresolvablePlaceholders) 解決できないプレースホルダーを無視するかどうかを設定します。void
setNullValue
(StringSE nullValue) プレースホルダー値として解決されるときにnull
として扱う値を設定します。たとえば、"" (空の文字列) または "null" などです。void
setPlaceholderPrefix
(StringSE placeholderPrefix) プレースホルダー文字列が始まる接頭辞を設定します。void
setPlaceholderSuffix
(StringSE placeholderSuffix) プレースホルダー文字列が終わるサフィックスを設定します。void
setTrimValues
(boolean trimValues) 解決された値を適用する前にトリミングして、最初と最後から余分な空白を削除するかどうかを指定します。void
setValueSeparator
(StringSE valueSeparator) プレースホルダー変数と関連するデフォルト値の間の区切り文字を指定します。値セパレータとしてそのような特殊文字を処理する必要がない場合はnull
クラス org.springframework.beans.factory.config.PropertyResourceConfigurer から継承されたメソッド
convertProperties, convertProperty, convertPropertyValue, getOrder, postProcessBeanFactory, processProperties, setOrder
クラス org.springframework.core.io.support.PropertiesLoaderSupport から継承されたメソッド
loadProperties, mergeProperties, setFileEncoding, setIgnoreResourceNotFound, setLocalOverride, setLocation, setLocations, setProperties, setPropertiesArray, setPropertiesPersister
フィールドの詳細
DEFAULT_PLACEHOLDER_PREFIX
デフォルトのプレースホルダープレフィックス: "${".- 関連事項:
DEFAULT_PLACEHOLDER_SUFFIX
デフォルトのプレースホルダーサフィックス: "}".- 関連事項:
DEFAULT_VALUE_SEPARATOR
デフォルト値セパレータ: ":".- 関連事項:
DEFAULT_ESCAPE_CHARACTER
デフォルトのエスケープ文字:'\'
.placeholderPrefix
デフォルトは "${" です。placeholderSuffix
デフォルトは "}" です。valueSeparator
デフォルトは ":" です。escapeCharacter
デフォルトはDEFAULT_ESCAPE_CHARACTER
です。trimValues
protected boolean trimValuesnullValue
ignoreUnresolvablePlaceholders
protected boolean ignoreUnresolvablePlaceholders
コンストラクターの詳細
PlaceholderConfigurerSupport
public PlaceholderConfigurerSupport()
メソッドの詳細
setPlaceholderPrefix
プレースホルダー文字列が始まる接頭辞を設定します。デフォルトは "${" です。setPlaceholderSuffix
プレースホルダー文字列が終わるサフィックスを設定します。デフォルトは "}" です。setValueSeparator
プレースホルダー変数と関連するデフォルト値の間の区切り文字を指定します。そのような特殊文字を値の区切り文字として処理する必要がない場合は、null
を指定します。デフォルトは ":" です。setEscapeCharacter
プレースホルダー接頭辞または値区切り文字を無視するために使用するエスケープ文字を指定します。エスケープを行わない場合はnull
を指定します。デフォルトは
DEFAULT_ESCAPE_CHARACTER
です。- 導入:
- 6.2
setTrimValues
public void setTrimValues(boolean trimValues) 解決された値を適用する前にトリミングして、最初と最後から余分な空白を削除するかどうかを指定します。デフォルトは
false
です。- 導入:
- 4.3
setNullValue
プレースホルダー値として解決されるときにnull
として扱う値を設定します。たとえば、"" (空の文字列) または "null" などです。これは完全なプロパティ値にのみ適用され、連結された値の一部には適用されないことに注意してください。
デフォルトでは、そのような null 値は定義されていません。つまり、ここで対応する値を明示的にマップしない限り、
null
をプロパティ値として表現する方法はありません。setIgnoreUnresolvablePlaceholders
public void setIgnoreUnresolvablePlaceholders(boolean ignoreUnresolvablePlaceholders) 解決できないプレースホルダーを無視するかどうかを設定します。デフォルトは「false」: プレースホルダーが解決に失敗した場合、例外がスローされます。このような場合にプレースホルダー文字列をそのまま保持するには、このフラグを "true" に切り替えて、他のプレースホルダー構成プログラムに任せて解決します。
setBeanName
プロパティファイルの場所にある解決できないプレースホルダーで失敗しないように、独自の Bean 定義を解析していないことを確認する必要があるだけです。後者のケースは、リソースの場所にあるシステムプロパティのプレースホルダーで発生する可能性があります。- 次で指定:
- インターフェース
BeanNameAware
のsetBeanName
- パラメーター:
beanName
- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String)
メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。- 関連事項:
setBeanFactory
プロパティファイルの場所にある解決できないプレースホルダーで失敗しないように、独自の Bean 定義を解析していないことを確認する必要があるだけです。後者のケースは、リソースの場所にあるシステムプロパティのプレースホルダーで発生する可能性があります。- 次で指定:
- インターフェース
BeanFactoryAware
のsetBeanFactory
- パラメーター:
beanFactory
- 所有 BeanFactory(非null
)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。- 関連事項:
doProcessProperties
protected void doProcessProperties(ConfigurableListableBeanFactory beanFactoryToProcess, StringValueResolver valueResolver)