2017-03-31 69 views
2

我正在使用Java和Spring引導。我想知道如何將Property佔位符添加到.yml文件中。我發現了一些清晰的例子,但我不確定屬性佔位符在哪裏被實例化。它是在系統環境變量,文件等。?如何在.yml文件中使用Property佔位符

Bootstrap.yml

spring: 
    cloud: 
    config: 
     username: ${my.stored.files.username} 
     password: ${my.stored.files.password} 
     label: ${spring.cloud.find.label} 
     uri: ${spring.cloud.config.uri} 
     enabled: false 
     failFast: true 

用戶使用屬性的佔位符,但哪兒來的用戶聲明呢? 這個.yml從哪裏讀取值? (同上問題) 是否有文件解釋連接?

該web應用程序將被推送到雲代工使用「cf push」,它會自動選擇manifest.yml文件進行配置。如果可能的話,雲代工廠的例子會很棒。

瞭解

app.name=MyApp 
app.description=${app.name} is a Spring Boot application 

用戶能夠使用$ {} app.name因爲它被定義。我對上面的例子感到困惑。用戶如何以及在哪裏獲得「$ {my.stored.files.username}」 定義在哪裏?我認爲它將在system.properties或環境變量中。任何人都可以確認?

+1

參見:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/support/ PropertySourcesPlaceholderConfigurer.html和http://stackoverflow.com/questions/28303758/how-to-use-yamlpropertiesfactorybean-to-load-yaml-files-using-spring-framework-4 –

+0

謝謝@DaveJarvis但我不認爲這就是我所看到的。 – Jesse

+0

您是否嘗試過在應用程序使用的YAML或其他配置文件中搜索「用戶名」?如果不知道應用程序的文件內容或文件夾結構,任何人都可能很難回答這個問題。但是,您應該能夠搜索文件,以查找變量的定義位置。 –

回答

7

經過深入研究,我能找到,當我使用使用.yml文件佔位符它讀取值從環境變量。這是我在一開始理論的一部分,但沒有人證實。

回答

spring: 
    cloud: 
    config: 
     username: ${my.stored.files.username} 
     password: ${my.stored.files.password} 
     label: ${spring.cloud.find.label} 
     uri: ${spring.cloud.config.uri} 
     enabled: false 
     failFast: true 

*環境變量*

set key as: my.stored.files.username 
set value as: UsernameSample 

然後

當你運行應用程序時,將陽明海運閱讀像這樣。

config: 
     username: ${my.stored.files.username} 
       //gets replaced with UsernameSample 

這是解決我的問題的鏈接link

相關問題