Ich habe eine Bibliothek, die ein Spring Boot-Projekt ist. Die Bibliothek verfügt über eine library.yml-Datei, die Entwickler und prod Requisiten für seine Konfiguration enthält:Spring Boot: Profile ignoriert in PropertySourcesPlaceholderConfigurer geladene Datei
library.yml
---
spring:
profiles:
active: dev
---
spring:
profiles: dev
env: dev
---
spring:
profiles: prod
env: prod
Eine weitere Anwendung dieser Bibliothek verwendet und lädt die Requisiten:
@Bean
public static PropertySourcesPlaceholderConfigurer dataProperties() {
PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer = new PropertySourcesPlaceholderConfigurer();
YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
yaml.setResources(new ClassPathResource("library.yml"));
propertySourcesPlaceholderConfigurer.setProperties(yaml.getObject());
return propertySourcesPlaceholderConfigurer;
}
Und seine application.yml sagt, Dev-Stützen zu verwenden:
---
spring:
profiles:
active: dev
Aber wenn ich den Wert von env überprüfe, bekomme ich "prod". Warum?
Wie kann ich Spring Boot mitteilen, die aktiven Profilrequisiten (z. B. dev) in library.yml zu verwenden?
Hinweis: Ich bevorzuge .yml statt .properties-Dateien.
haben Sie versucht, --spring.profiles.active = dev als Befehlszeilenargument zu übergeben? –
Nein. Aber ich habe überprüft, dass das aktive Profil dev ist. Ich habe eine Lösung, die ich posten werde. – James