SpringBoot配置-yaml基本语法**
YAML全称是YAML Ain’t Markup Language.
YAML是一种直观的能够被电脑识别的的数据数据序列化格式,
并且容易被人类阅读,容易和脚本语言交互的,
可以被支持YAML的不同的编程语言程序导入,
比如: C/C++, Ruby, Python, Java, Perl, C#, PHP,等.
YML文件是以数据为核心的,比传统的xml方式更加简洁。
YAML文件的扩展名可以使用.yml或者yaml.
- 大小写敏感
- 数据值前边必须有空格,作为分隔符
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格(各个系统 Tab对应的 空格数目可能不同,导致层次混乱)。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- ‘’#" 表示注释,从这个字符一直到行尾,都会被解析器忽略。
SpringBoot配置-yaml数据格式**
对象(map):键值对的集合。
行内写法:就是不分行,将数据都写在 一行。
person:
name: zhangsan
# 行内写法
person: {name: zhangsan}
数组:一组按次序排列的值
数组 的 横杠 后面 也要加空格 才能识别这行的数据
address:
- beijing
- shanghai
# 行内写法
address: [beijing,shanghai]
纯量:单个的、不可再分的值
这里的纯量 就是java里的常量
识别转义字符 就是将 \n 打印出来不会换行
忽略转义字符 就是将 数据 换行
msg1: 'hello \n world' # 单引忽略转义字符
msg2: "hello \n world" # 双引识别转义字符
参数引用
name: lisi
person:
name: ${name} # 引用上边定义的name值
${name} 表示 这里使用上面定义的 name: lisi 的值 lisi
读取、获取 springboot 配置文件的内容
读取 方式:
- 使用 注解 @Value 读取
- 使用 对象 Enviromment 环境的意思
- @ConfigurationProperties 注解 读取 这个是 用来 映射 对象 与 配置文件的内容 形成映射关系
练习代码
// 获取配置文件中 数据的值
@Value("${name}")
private String name;
@Value("${person.name}")
private String name2;
@Value("${person.age}")
private String age;
@RequestMapping("/h2")
public String he(){
System.out.println(name);
System.out.println(name2);
System.out.println(age);
return "洛天依";
}
<!--这是 springboot配置文件的处理器
加了这个依赖 在springboot的配置文件里 会出现提示信息
有了提示信息 才会方便
记住 配置文件 最好留一个,否则它会只提示优先级最高的那个文件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
用java代码获取 springboot配置文件的数据
@RestController
public class HelloController {
// 获取配置文件中 数据的值
@Value("${name}")
private String name;
@Value("${person.name}")
private String name2;
@Value("${person.age}")
private String age;
//注意:这里是spring包里的
@Autowired
private Environment env;
@Autowired
private Person person;
@RequestMapping("/h2")
public String he(){
System.out.println(name);
System.out.println(name2);
System.out.println(age);
System.out.println(env.getProperty("person.name"));
return "洛天依";
}
}
实体类 绑定springboot配置文件中的对象信息
@Component
/* @ConfigurationProperties 连接springboot配置文件
* 与 对应的对象的成员名称绑定
* prefix="person" 添加前缀 与实体类的类型要一致
* 加前缀 是为了表示 实体类成员与配置文件的数据 一一对应*/
@ConfigurationProperties(prefix="person")
public class Person {
private String name;
private int age;
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}