2015-09-03 70 views
8

從彈簧文檔http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-yaml我看到外部YAML文件是可能的。如何在配置文件中指定外部application.yml

我能夠使用PropertyPlaceholderConfig FileSystem資源加載yaml,但它沒有兌現活動配置文件。

我看到了application.properties,你可以使用@PropertySource,但根據文檔不適用於YAML。

因此底線問題:如何在Spring4/spring引導中以配置文件感知的方式指定application.yml。

注:它的工作原理的src /主/資源/ application.yml

+0

通過剛剛放置'application.yml'旁邊的'application- [profile] .yml'。正如你在同一個鏈接中所解釋的那樣。 Spring Boot會自動加載它。 –

+0

這適用於使用標準屬性文件的類內路徑資源。我的目標是外部資源yaml(在一個文件中的所有配置文件) – redwhite

+0

請閱讀文檔,而不是創建自己的解釋。它也適用於YAML文件。除此之外,它還可以用於與jar或config目錄相同的目錄中的文件。所以再次閱讀配置部分...如果你想指定一個文件,只需使用'--spring.config.location'來啓動你的應用程序,該部分在該部分稍後解釋(http://docs.spring.io/彈簧引導/文檔/電流/參考/ HTML /引導特徵-外部config.html#引導特徵-外部配置的應用程序屬性文件)。 –

回答

11

爲了指定外部輪廓知道.yml文件的SPRING_CONFIG_LOCATION和SPRING_PROFILES_ACTIVE系統變量都可以使用。

JAVA_OPTS例如

-Dspring.profiles.active=dev -Dspring.config.location=file:C:/application.yml 

這將讓你有提供YML文件內多個配置文件,讓春天做評估正確的屬性的繁重:

spring: 
    profiles: dev 
someprop: devprop 
--- 
spring: 
    profiles: test 
someprop: testprop 
+0

如果添加someprop:$ {devprop}這個yml文件將在哪裏檢索佔位符的值? – Jesse

+0

@Jesse它會去你的環境變量來檢索。 – Jesse

相關問題