SringBoot之yaml语法
------------恢复内容开始------------
SpringBoot之yaml语法
1、配置文件
官方配置文档太多了,根本记不住!
怎么办呐-->了解原理
SpringBoot使用了一个全局配置文件,且配置文件的名称是固定的:
- application.properties
- 语法结构:key=value
- application.yaml
- 语法结构:key: 空格 value
YAML是"YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。(来自于百度百科词条解释)
YAML和XML的区别(以配置端口号为例):
YAML配置:
server:
address: 8081
XML配置 :
8081
2.1、YAML语法
基础语法--> key:value
#普通的key value键值对
name: liberty#对象
student:
name: liberty
age: 20#对象的行内写法
student: {name: liberty,age: 20}#数组
pets:
- dog
- cat
- pig#数组的行内写法
pets: [dog,cat,pig]
注意:yaml中对于空格的要求极其严格
student:
name: liberty
age:20
(age前面加一个空格的话相当于age是name下面的属性)student:
name: liberty
age: 20
(这样相当于三个对象)
2.2、注入配置文件
程序实现
2.2.1、将默认的application.properties后缀改为yaml
文章图片
2.2.2、根据提示打开文档导入配置文件处理器
文章图片
org.springframework.boot
spring-boot-configuration-processor
true
2.2.3、编写yaml配置文件
文章图片
2.2.4、在SpringBoot的主程序的同级目录下建包(必须这样,约定大于配置)
文章图片
package com.liberty.pojo;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
/**
* 注解意思是将此添加到SpringBoot组件里面
*/
@ConfigurationProperties(prefix = "person")
/**
* ConfigurationProperties告诉SpringBoot将本类中的所有属性和配置文件中相关配置进行绑定
* 参数prefix = "person" 将配置文件中的person下面的所有属性一一对应
*/
public class Person
{
private String name;
private Integer age;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}public String getName() {
return name;
}public void setName(String name) {
this.name = name;
}public Integer getAge() {
return age;
}public void setAge(Integer age) {
this.age = age;
}public Person(String name, Integer age) {
this.name = name;
this.age = age;
}public Person() {
}
}
2.2.5、测试无误后,在测试单元中进行测试,看看是否注入成功
package com.liberty;
import com.liberty.pojo.Person;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Demo02ApplicationTests {
//自动装配
@Autowired
Person person;
@Test
void contextLoads() {
System.out.println(person);
}}
【SringBoot之yaml语法】
文章图片
------------恢复内容结束------------
推荐阅读
- 《剑指offer》之利用单调栈法求直方图最大矩形面积
- 源声|听听赛博堡垒的锻造之路,以及云安全那些事儿
- 干货分享|接口测试系列之——接口安全测试
- Java入门之基础程序设计
- 摘录|皮克斯创始人之一约翰·拉塞特今年底将正式离职,他对于动画世界的贡献无法被磨灭
- Android之Spinner用法详解
- Nginx之location详解
- 机器学习|datawhale学习之一西瓜书和南瓜书概论
- 算法|Leetcode刷题笔记之: 链表(单链表经典题目)
- java线程创建和使用_Java 多线程 之 线程的创建和使用