Spring Boot学习总结(yaml)
一、yaml语法
- spring boot使用一个全局的配置文件,配置文件是固定的。要么是.properties,要么是.yaml,官方推荐.yaml。
- 删掉原来的application.properties配置文件,新建一个application.yaml文件
- application.properties语法:key=value。
- application.yaml语法:key:空格value。
- 配置文件作用:修改spring boot自动配置的默认值,因为spring boot在底层都给我们自动配置好了。
二、了解yaml
- YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。
- 以前的配置文件,大多数都是使用xml来配置
- 设置一个简单的端口配置,分别使用yaml和xml
yaml配置:
xml配置:server: prot: 8080
<server> <port>8081<port> </server>
- yaml对空格的要求十分高!
三、yaml存放内容
-
普通的键值对(key-value)
name: meijindeng
-
对象
student1: name: meijindeng age: 20
-
行内写法
student2: {name: meijindeng,age: 20}
-
数组
# 数组 pets1: - cat - dog - pig pets2: [cat,dog,pig]
-
properties只能保存键值对
name = meijindeng student.name = meijindeng student.age = 20
四、 yaml给属性赋值
以前的方法:在属性上使用注解@Value(“xxx”)。
-
例:创建一个Dog实体类,并赋值
@Component public class Dog { @Value("旺财") private String name; @Value("3") private Integer age; //省略无参构造、有参构造、get\set方法、toString方法 }
-
测试:
@SpringBootTest
class Springboot1ApplicationTests {
@Autowired
private Dog dog;
@Test
void contextLoads() {
System.out.println(dog);
}
}
- 运行结果:
现在的方法:
- 实体类Dog不变。
- 编写application.yaml配置文件。
dog: name: 旺财 age: 3
- 实体类上添加注解:@ConfigurationProperties(prefix = “dog”)。
- 测试不变,运行结果一样。
- 使用注解@ConfigurationProperties会爆红,但是不影响使用,需要添加依赖就好。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>