クラス PropertyOverrideConfigurer

実装されたすべてのインターフェース:
BeanFactoryPostProcessorOrderedPriorityOrdered

public class PropertyOverrideConfigurer extends PropertyResourceConfigurer
アプリケーションコンテキスト定義の Bean プロパティ値をオーバーライドするプロパティリソースコンフィギュレーター。プロパティファイルから Bean 定義に値をプッシュします。

構成行は次の形式であることが期待されます。

beanName.property=value
プロパティファイルの例:
dataSource.driverClassName=com.mysql.jdbc.Driver
 dataSource.url=jdbc:mysql:mydb
PropertyPlaceholderConfigurer とは対照的に、元の定義には、このような Bean プロパティのデフォルト値を設定することも、まったく値を設定しないこともできます。オーバーライドするプロパティファイルに特定の Bean プロパティのエントリがない場合、デフォルトのコンテキスト定義が使用されます。

コンテキスト定義オーバーライドされることを認識していないことに注意してください。そのため、XML 定義ファイルを見てもすぐにはわかりません。さらに、指定されたオーバーライド値は常にリテラル値であることに注意してください。それらは Bean 参照に変換されません。これは、XML Bean 定義の元の値が Bean 参照を指定している場合にも当てはまります。

同じ Bean プロパティに異なる値を定義する複数の PropertyOverrideConfigurers の場合、(オーバーライドメカニズムにより)最後の 1 つが優先されます。

プロパティ値は、convertPropertyValue メソッドをオーバーライドすることで、読み込んだ後で変換できます。例: 暗号化された値は、処理する前に検出および復号化できます。

導入:
12.03.2003
作成者:
Juergen Hoeller, Rod Johnson
関連事項:
  • フィールドの詳細

    • DEFAULT_BEAN_NAME_SEPARATOR

      public static final StringSE DEFAULT_BEAN_NAME_SEPARATOR
      デフォルトの Bean 名前セパレータ。
      関連事項:
  • コンストラクターの詳細

    • PropertyOverrideConfigurer

      public PropertyOverrideConfigurer()
  • メソッドの詳細

    • setBeanNameSeparator

      public void setBeanNameSeparator(StringSE beanNameSeparator)
      Bean 名とプロパティパスの間に期待するセパレータを設定します。デフォルトはドット("." )です。
    • setIgnoreInvalidKeys

      public void setIgnoreInvalidKeys(boolean ignoreInvalidKeys)
      無効なキーを無視するかどうかを設定します。デフォルトは "false" です。

      無効なキーを無視すると、"beanName.property" 形式に従わない(または無効な Bean の名前やプロパティを参照する)キーは、デバッグレベルでログに記録されます。これにより、プロパティファイルに任意の他のキーを含めることができます。

    • processProperties

      protected void processProperties(ConfigurableListableBeanFactory beanFactory, PropertiesSE props) throws BeansException
      クラスからコピーされた説明: PropertyResourceConfigurer
      特定のプロパティを特定の BeanFactory に適用します。
      次で指定:
      クラス PropertyResourceConfigurerprocessProperties 
      パラメーター:
      beanFactory - アプリケーションコンテキストで使用される BeanFactory
      props - 適用するプロパティ
      例外:
      BeansException - エラーの場合
    • processKey

      protected void processKey(ConfigurableListableBeanFactory factory, StringSE key, StringSE value) throws BeansException
      指定されたキーを "beanName.property" エントリとして処理します。
      例外:
      BeansException
    • applyPropertyValue

      protected void applyPropertyValue(ConfigurableListableBeanFactory factory, StringSE beanName, StringSE property, StringSE value)
      指定されたプロパティ値を対応する Bean に適用します。
    • hasPropertyOverridesFor

      public boolean hasPropertyOverridesFor(StringSE beanName)
      この Bean のオーバーライドはありましたか? 処理が少なくとも 1 回発生した後でのみ有効です。
      パラメーター:
      beanName - ステータスを照会する Bean の名前
      戻り値:
      名前付き Bean のプロパティのオーバーライドがあったかどうか