Spring boot-profile, die mit externen Eigenschaften
Ich würde gerne setup 3 profile in den Frühling starten: die Produktion,Entwicklung,test mit einer externen config-Datei.
Application-Klasse:
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication.run( Application.class, args );
}
}
AppConfig-Klasse:
@Configuration
@PropertySources({
@PropertySource("config/application.yml"),
@PropertySource(value = "file:${external.config}")
})
@ConfigurationProperties
public class AppConfig {
}
config/application.yml:
---
spring.profiles: production
endpoints.enabled: false
---
spring.profiles: development,test
endpoints.enabled: true
info.version: @project.version@
info.test: Test dev or test
info.profile: ${spring.profiles.active}
---
external.config: ${user.home}/.myapp/application.properties
.myapp/application.Eigenschaften:
spring.profiles.active=production
info.version=5
Die Ausgabe des spring-boot-Antrieb /info
{
version: "5",
test: "Test dev or test",
profile: "production"
}
Erwartete Ausgabe:
404 because of the endpoints.enabled: false
Frühjahr-boot-Antrieb /env
spring.profiles.active: "production"
InformationsquelleAutor Gergely Peidl | 2015-09-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie wahrscheinlich Präfix der Anwendung.yml-Datei mit
classpath:
In jedem Fall, warum nicht einfach die Feder-Profil-Laufwerk-Konfiguration direkt in der java-Konfiguration? IMO, dies wäre sauberer und würde Ihren Eigenschaften mehr geben-sicher & re-Faktor, freundlich und nicht anfällig für Schreibfehler.
UPDATE:
Laut der docs, können Sie nicht laden yml-Dateien mit der
@PropertySource
Anmerkung:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-yaml-shortcomings
Also, wenn Sie brauchen, um Dateien verwenden, müssen Sie verwenden nur die properties-Dateien. Sie könnte verwenden, Eigenschaft-spezifische Anwendung-Eigenschaften-Dateien angezeigt hier.
Ah, du hast Recht. Entschuldigung. Ich sehe, Sie können bewerten jede config bereits registriert sind, gegen die env. Ich update meine Antwort.
Ich denke, mit classpath: sicherer/mehr predicatable in verschiedenen Umgebungen
Vielen Dank, beim ersten mal dachte ich, dass es leicht sein wird. 🙁 Aber die Produktion, Profil-Einstellungen, warum Sie nicht aktiviert werden?
Ok, laut den docs, Sie kann nicht geladen yml-Dateien mit @PropertySource docs.Frühling.io/spring-boot/docs/current/Referenz/html/...
InformationsquelleAutor leeor