@PropertySource
Springで使用する利点は何ですか?
構成を考えると...
@Configuration
@PropertySource("classpath:foo.properties")
public class Config {}
...アクセスできますEnvironment
public class Foo {
@Autowire Environment env;
public void bar() {
String foo = env.getProperty("foo");
}
}
これは、通常のシステム プロパティですでに実行できます。システムプロパティでプロファイル管理も簡単
if (profile1) System.setProperty("foo", "bar")
else System.setProperty("foo", "baz");
...と
System.getProperty("foo"); // also shorter than autowiring an environment
さらに、システム プロパティにはいくつかの欠点がありません。@PropertySource
- システム プロパティは反復可能ですが、そうで
PropertySource
はありません PropertySource
フォールバック プロパティを許可しません。カスタムを作成することはPropertySource
、少なくともシステム プロパティで同じことを行うコードと同じです。Environment
@Autowire
スプリングカップリングを増やす