24.7.2. Relaxed绑定

Spring Boot将Environment属性绑定到@ConfigurationProperties beans时会使用一些宽松的规则,所以Environment属性名和bean属性名不需要精确匹配。常见的示例中有用的包括虚线分割(比如,context-path绑定到contextPath),将environment属性转为大写字母(比如,PORT绑定port)。

例如,考虑以下@ConfigurationProperties类:

@ConfigurationProperties(prefix="acme.my-project.person")
public class OwnerProperties {

    private String firstName;

    public String getFirstName() {
        return this.firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

}

在之前的例子里,下面的属性名都能使用:

表格 24.1. relaxed绑定

属性

说明

acme.my-project.person.firstName

标准驼峰命名语法

acme.my-project.person.first-name

短横线隔开表示,推荐用于.properties.yml文件中

acme.my-project.person.first_name

下划线表示,用于.properties.yml文件的可选格式

ACME_MYPROJECT_PERSON_FIRSTNAME

大写形式,推荐用于系统环境变量

注解的前缀值必须用短横线隔开表示,即小写并用-隔开,比如acme.my-project.person

表格 24.2. 各个属性源的relaxed绑定规则

属性源

Simple

List

Properties文件

驼峰命名法,短横线隔开表示,下划线表示

使用[ ]的标准list语法,或者由逗号分隔的值

YAML文件

驼峰命名法,短横线隔开表示,下划线表示

标准的YAML list语法,或者由逗号分隔的值

环境变量

下划线作为分隔符的大写格式。_不应当用在属性名上

被下划线环绕的数值。比如:MY_ACME_1_OTHER = my.acme[1].other

系统属性

驼峰命名法,短横线隔开表示,下划线表示

使用[ ]的标准list语法,或者由逗号分隔的值

提示 我们推荐:当可能时,属性用小写短横线隔开的格式储存。比如,my.property-name=acme

最后更新于