SpringBoot Document Part.4 24.Spring Boot features

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是整数。如果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应用程序

YAML

YAML是JSON的超集,因此是用于指定分层配置数据的非常方便的格式

加载YAML

Spring框架提供了两个方便的类,可以用来加载YAML文档。在YamlPropertiesFactoryBean将加载YAML作为PropertiesYamlMapFactoryBean将加载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转化为java.util.list(或set)

@ConfigurationProperties(prefix="my")
public class Config {

    private List servers = new ArrayList();

    public List getServers() {
        return this.servers;
    }
}

使用@Value 获取YAML配置的属性

数据的宽松绑定

标准的驼峰命名
person-first-name
person_fist_name
PERSON_FIRST_NAME

你可能感兴趣的:(SpringBoot Document Part.4 24.Spring Boot features)