SpringBoot 官方文档示例:(26)将配置文件中的属性灵活映射到配置类

一、使用application.properties作为主配置文件,
配置实体类使用驼峰命名:

package cn.edu.tju.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "my.test")
public class AppConfig4 {
    private String firstName;
    private String middleName;
    private String lastName;

    public String getFirstName() {
        return firstName;
    }

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

    public String getMiddleName() {
        return middleName;
    }

    public void setMiddleName(String middleName) {
        this.middleName = middleName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

在application.properties中可以使用驼峰、下划线分割(Underscore notation)和中划线分割(kebab)这三种格式,

my.test.first-name=Ludwig
my.test.middleName=Van
my.test.last_name=Beethoven

二、使用application.yml作为配置文件,同样在配置文件中可以使用驼峰、下划线分割(Underscore notation)和中划线分割(kebab)这三种格式

server:
  port: 8080
my:
  test:
    firstName: Ludwig
    middle-name: Van
    last_name: Beethoven

三、可以通过注解@Value(“${xxx}”)直接注入环境变量中的值,
将会进行如下处理:
1.去掉中划线
2.将.改成下划线
3.改成大写
例如,如果在controller中进行如下注入:

    @Value("${java.home}")
    private String javaHome;

则javaHome这个变量的值将从环境变量JAVA_HOME中去读取。

四、可以通过注解@Value(“${xxx}”)直接注入系统变量的值,即通过System.getProperties()获取到的那些变量的值,理论上也可以使用驼峰、下划线分割(Underscore notation)和中划线分割(kebab)这三种格式,实际最好与变量名称一致:
如:

    @Value("${java.vm.name}")
    private String vmName;

    @Value("${FILE_LOG_CHARSET}")
    private String fileLogCharset;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值