一、使用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;