Le titre est tel qu'il est.
Dans SpringBoot 2.3.0 ou version ultérieure, si vous utilisez des espaces réservés comme classpath: /something-config-${spring.profiles.active} .yml
pour spécifier la valeur de @ PropertySource
, vous ne pourrez pas résoudre et une exception se produira. apparaître.
La dernière version de Boot aujourd'hui est la 2.3.1.
La source
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;
}
résultat
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.profiles.active' in value "classpath:/somethign-config-${spring.profiles.active}.yml"
J'ai utilisé la série 2.2 pour le moment.
issue
https://github.com/spring-projects/spring-boot/issues/21631