PropertySourcesPlaceholderConfigurer Bean を明示的に宣言しない場合に、Spring がプロパティ プレースホルダーを解決する方法に頭を悩ませようとしています。注釈を介してJavaを介してSpringを構成する既存のプロジェクトのソースを調べます。. .
春のコンテキストxmlで:
<context:component-scan base-package="com.myproject.config" />
残りのアプリと構成をブートストラップするJavaファイルで
package com.myproject.config;
@Configuration
@ComponentScan(basePackages = {"com.myproject.app"})
@PropertySource("config/${app.env}.properties")
public class RootConfig {
}
それはすべて非常に巧妙ですが、私の人生では、環境変数に対して ${...} プロパティのプレースホルダー構文を評価するようにSpringに指示するものを理解できません。春のドキュメントで答えを見つけることができませんでしたが、春はこれを行うためにPropertySourcesPlaceholderConfigurerクラスに依存していることを理解しています。このクラスがいつ/どのように暗黙的に呼び出されるかについては、何もわかりません。@Configuration アノテーションによるものですか、それともスプリング ブートストラップ プロセスの別の部分ですか?
これは理解するのに最も適切なことではないことはわかっていますが、「春の魔法」として何かを書き留めるのは嫌いです. これについての洞察は素晴らしいでしょう!