@PropertySourceSpringで使用する利点は何ですか?
構成を考えると...
@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スプリングカップリングを増やす