2015-10-06 159 views
2

彈簧啓動允許使用YAML使用參數化鍵嗎? parametred關鍵的彈簧啓動YAML配置:參數鍵

例子:

myapp.configured.key: This is your email > {0} And this is your name > {1} 

在我的Java類,我想要做一些事情是這樣的:

@Inject 
private Environment env;//import org.springframework.core.env.Environment; 


String email = "[email protected]" 
String name = "User Name"; 

String key=env.getProperty("myapp.configured.key", email, name); 

System.out.println(key); 

和外認沽將是這樣的:

This is your email > [email protected] And this is your name > User Name 
+0

如果你能做'String key = String.format(env.getProperty(「myapp.configured.key」),email,name);'(假設你可以改變你的佔位符爲'%s ') – kryger

+0

因爲在Spring中使用MessageSource(org.springframework.context.MessageSource),我們可以做一些類似於上面的事情(比較類型)。但看起來好的替代方法;)。謝謝 – BOSS

回答

1

如果您的emailname也是配置鍵,您可以參考第時間在你的信息(但它是一個有點怪)

myapp.configured.email: [email protected] 
myapp.configured.name: John Smith 
myapp.configured.key: This is your email > ${myapp.configured.email} And this is your name > ${myapp.configured.name} 

Environment有沒有這樣的API作爲一個春天引導用戶,你不應該連碰的東西(檢查@ConfigurationProperties類型安全配置的結合)。

+0

嗨@StéphaneNic​​oll,電子郵件和名稱不是包括在我的文件配置:(我應該從我的控制器得到它們並將它們設置爲 – BOSS

+0

然後,您應該存儲格式化的字符串並自己執行格式化。 –