内容
タイトルそのままです。
SpringBoot2.3.0 以降で@PropertySource
の value の指定に classpath:/something-config-${spring.profiles.active}.yml
のようにプレースホルダを使っていると、解決できずに例外が発生する。
現在の Boot の最新バージョンは 2.3.1 です。
ソース
SomethingConfig.java
@Configuration
@ConfigurationProperties(prefix = "something")
@Component
@PropertySource(value = {"classpath:/something-config.yml","classpath:/something-config-${spring.profiles.active}.yml"}, factory = YamlPropertySourceFactory.class)
@Data
public class SomethingConfig {
private String setting1;
private String setting2;
}
結果
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.profiles.active' in value "classpath:/somethign-config-${spring.profiles.active}.yml"
解決方法
とりあえず 2.2 系を使いました。
issue