24.外部化配置
配置隨機值
my.secret = $ {random.value}
my.number = $ {random.int}
my.bignumber = $ {random.long}
my.uuid = $ {random.uuid}
my.number.less.than.ten = $ {random.int(10)}
my.number.in.range = $ {random.int [1024,65536]}
該random.int*
語法是OPEN value (,max) CLOSE
其中的OPEN,CLOSE
任何字符和value,max
是整數(shù)哥纫。如果max
提供典予,則value
是最小值儒拂,max
是最大(獨占)美浦。
更換其他名字的配置文件
$ java -jar myproject.jar --spring.config.name = myproject
$ java -jar myproject.jar --spring.config.location = classpath:/default.properties,classpath:/override.properties
占位符
app.name = MyApp
app.description = $ {app.name}是一個Spring Boot應(yīng)用程序
YAML
YAML是JSON的超集愧沟,因此是用于指定分層配置數(shù)據(jù)的非常方便的格式
加載YAML
Spring框架提供了兩個方便的類剧腻,可以用來加載YAML文檔半醉。在YamlPropertiesFactoryBean
將加載YAML作為Properties
和 YamlMapFactoryBean
將加載YAML作為Map
幽纷。
例子:
environments:
dev:
url: http://dev.bar.com
name: Developer Setup
prod:
url: http://foo.bar.com
name: My Cool App
YAML列表被表示為具有[index]
解引用的屬性鍵式塌,例如
my:
servers:
- dev.bar.com
- foo.bar.com
my.servers[0]=dev.bar.com
my.servers[1]=foo.bar.com
使用這些屬性時需要使用注解@ConfigurationProperties
轉(zhuǎn)化為java.util.list
(或set
)
@ConfigurationProperties(prefix="my")
public class Config {
private List<String> servers = new ArrayList<String>();
public List<String> getServers() {
return this.servers;
}
}
使用
@Value
獲取YAML配置的屬性
數(shù)據(jù)的寬松綁定
標(biāo)準(zhǔn)的駝峰命名
person-first-name
person_fist_name
PERSON_FIRST_NAME