2017-05-05 115 views
1

在我的雲配置我有這個我-app.yml春雲配置序列化爲陣列

spring: 
    profiles: dev 
roles: 
    - nerds 
    - staff 

但它似乎被序列化,像這樣:的

"source": { 
    "roles[0]": "nerds", 
    "roles[1]": "staff" 
} 

代替

"source": { 
    "roles": [ 
    "nerds", 
    "staff" 
    ]  
} 

如果我從一個節點應用程序中使用我的配置,我現在必須找到與正則表達式/^roles相匹配的所有道具並解析出該數組,而不僅僅是本機返回數組。

有沒有辦法將雲配置配置爲僅返回本地數組而不是將其分解爲對象的索引鍵?

回答

2

據我所知,沒有配置使配置服務器提供本地數組,因爲yml文件只是spring啓動時屬性文件的替代表示。

相反,您可以通過配置服務器支持的不同端點(如下圖)從您的節點應用程序訪問您的配置服務器。

/{application}-{profile}.yml 
/{label}/{application}-{profile}.yml 

{profile}可以是由命令(,)分隔的多個值。如果你用上面的配置服務器訪問你的配置服務器,那麼配置將作爲本地yaml格式提供,它具有完全相同的內容 - 已經從多個文件中合併和重寫了屬性 - 並且它具有像yaml列表的數組值,就像你想要的那樣。如您所知,您可以輕鬆地將yaml解析爲node.js中的JSON。我認爲這可能是您的替代解決方案。

您可以找到配置服務器支持的其他端點here - 快速入門部分。

+0

真棒....感謝您的信息! – Jason