二、SpringBoot配置
SpringBoot配置文件
springBoot配置一般有application.properties
、application.yml
、application.yaml
优先级:properties
>yml
>yaml
YAML:基本语法
- 大小写敏感
- 数据值前必须有空格作为分隔符
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格(各个系统Tab键生成的缩进对应的空格数目可能不相同,导致层次混乱)
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
#
表示注释,从这个字符一直到行尾,都会被解析器忽略
server:
port: 8080
adress: 127.0.0.1
name: abc
YAML:数据格式
- 对象(map):键值对的集合
person:
name: zhangsan
# 行内写法
persopn: {name: zahngsan}
- 对象:一组按次序排序的值
address:
- beijing
- shanghai
# 行内写法
address: [beijing, shanghai]
- 纯量:单个的,不可再分的值
msg1: 'hello \n world' # 单引号忽略转义字符
msg2: "hello \n world" # 双引号识别转义字符
YAML:参数引用
name: list
person:
name: ${name}
读取配置内容
- @Value
- Environment
- @ConfigurationProperties
@Value用法
@RestController
public class HelloController {
@Value("${person.name}")
private String name;
@Value("${version}")
private Double version;
@Value("${address[0]}")
private String address1;
@Value("${address[1]}")
private String address2;
@Value("${msg1}")
private String msg1;
@Value("${msg2}")
private String msg2;
@RequestMapping("/")
public String hello(){
System.out.println(name);
System.out.println(version);
System.out.println(address1);
System.out.println(address2);
System.out.println(msg1);
System.out.println(msg2);
return "Hello springBoot";
}
}
Environment用法
@RestController
public class HelloController {
@Autowired
private Environment env;
@RequestMapping("/")
public String hello(){
System.out.println(env.getProperty("person.name"));
System.out.println(env.getProperty("version"));
System.out.println(env.getProperty("address[0]"));
System.out.println(env.getProperty("address[1]"));
System.out.println(env.getProperty("msg1"));
System.out.println(env.getProperty("msg2"));
return "Hello springBoot";
}
}