このクラスを使用して、別の Config クラスで既に設定されている @PropertySource をオーバーライドします。
@Configuration
@PropertySource({ "classpath:${env.placeholder}/app.properties" })
public class PropertyOverrideConfig {
}
ただし、ファイルまたはプレースホルダーが見つからない場合は常に、コンテキストの読み込みに失敗します。プロパティが見つからない場合にスキップするように、その注釈が読み込まれたプロパティに次のフラグを設定する必要があります。
setIgnoreResourceNotFound(true);
setIgnoreUnresolvablePlaceholders(true);
質問 1: @PropertySource にこれらのフラグを設定する適切な方法は何ですか?
更新:このページ を参照する注釈なしで同じクラスに @Bean を追加しようとしましたが、プロパティ ファイルも選択されていません。私はxml構成を持っていません。
@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
final PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
Resource[] resources = new ClassPathResource[ ] {
new ClassPathResource( "classpath:${env.placeholder}/app.properties" ) };
pspc.setLocations( resources );
pspc.setIgnoreResourceNotFound(true);
pspc.setIgnoreUnresolvablePlaceholders(true);
return pspc;
}
質問 2: 私は何かが欠けていると確信していますが、それが何であるかを理解できませんでした。