配置文件properties.yml格式
注意:
- 大小写敏感
- 数据前要有空格
- 数据格式:对象、数组、纯量、数据格式引用${}
# 加载顺序 yml > yaml > properties
# 覆盖顺序:properties > yaml > yml,即properties中内容与其他冲突时properties有限生效。
server:port: 8088# 对象
person:uName: 张三age: 20#对象单行格式
person2: { uName: 张三, age: 20 }# 数组格式
addr:- 北京- 上海
#数组单行格式
addr2: [ 北京, 上海 ]#纯量
msg: 'hello \n word' # 不会转译字符,会原样输出
msg1: "hello \n word" # 会识别转译字符#参数引用 ${}
gender: test
person3:uName: 张三gender: ${gender}
获取yml中的值
使用@Value 获取单个值
使用@Environment 获取全部
在类中直接注入@ConfigurationProperties(prefix = “person”)
@Value方式
// 从yml中获取相应的值
// 纯量@Value("${msg}")String msg;@Value("${msg1}")String msg1;
// 对象@Value("${person.uName}")String uName;@Value("${person.age}")int age;
// 数组@Value("${addr[0]}")String addr1;
@Environment方式
@AutowiredEnvironment env;
// 获取值,默认返回String类型
System.out.println(env.getProperty("msg"));
String age = env.getProperty("person2.age");
System.out.println(age);
System.out.println(env.getProperty("person2.age"));
在类中直接注入@ConfigurationProperties(prefix = “person”)
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;@ConfigurationProperties(prefix = "person")
@Component
public class Person {private String uName;private String age;String[] addr;public String getuName() {return uName;}public void setuName(String uName) {this.uName = uName;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String[] getAddr() {return addr;}public void setAddr(String[] addr) {this.addr = addr;}@Overridepublic String toString() {return "Person{" +"uName='" + uName + '\'' +", age='" + age + '\'' +'}';}
}
获取时候直接注入Person类就可以获取相应的值
@AutowiredPerson person;
环境配置(指定开发或者测试环境)
profile用于不同环境切换
激活方式:
- 文件中声明 spring.profiles.active=pro
- 虚拟机参数 -Dspring.profiles.active=dev
- 命令行参数 --spring.profiles.active=dev
使用properties时
可设置多个properties文件,在主文件中指明使用环境
#指定配置环境
spring.profiles.active=pro
使用yml时:
- 可使用 — 隔离多个环境,在最后指明激活环境
- 也可以在此处定义指明,也可以在运行时使用命令 --spring.profiles.active=dev指明使用环境
---
#识别顺序优先级 properties > yml > yaml
myconfig:localInterface: http://localhost:8089/autoPunchInterface: http://localhost:8088/server:port: 8081#设置开放环境
spring:config:activate:on-profile: dev
---myConfig:localInterface: http://localhost:8089/autoPunchInterface: http://localhost:8088/server:port: 8082#设置生产环境
spring:config:activate:on-profile: pro
---#可以在此处定义指明,也可以在运行时使用命令 --spring.profiles.active=dev指明使用环境
#激活环境
spring:profiles:active: pro