springboot中配置文件
SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的
- application.properties
它的语法结构:key=value - application.yml或者application.yaml(两者相同)
它的语法结构:key:空格 value
使用配置文件的作用 :修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;
我们可以手动修改配置文件中的默认值,比如修改Tomcat默认启动的端口号
server.port=80
可以看到Tomcat的端口号已经更改了
yaml概述
YAML是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)
这种语言以数据作为中心,而不是以标记语言为重点,用来表达数据序列化的格式
以前的配置文件,大多数都是使用xml来配置;比如一个简单的端口配置,我们来对比下yaml和xml
传统xml配置:
<server>
<port>80<port>
</server>
server:
prot: 80
yaml基础语法
- 空格不能省略
- 以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的
- 属性和值的大小写都是十分敏感的
普通的值【数字,布尔值,字符串】
可以直接写在 key:空格的后面,字符串默认不用加上双引号或者单引号
- 注意:“ ” 双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思;比如 :name: “kuang \n shen” 输出 :kuang 换行 shen
- ‘’ 单引号,会转义特殊字符 , 特殊字符最终会变成和普通字符一样输出,比如 :name: ‘kuang \n shen’ 输出 :kuang \n shen
对象、map(键值对)
#对象、map格式
k:
v1:
v2:
第一行表示对象名,下一话来表示对象的属性和值的关系,注意缩进
student:
name: chenhui
age: 22
行内写法:
student: {
name: chenhui,age: 3}
数组(list、set)
用 - 值 表示数组中的一个元素
animal:
- person
- pig
- dog
行内写法:
animal: [person,pig,dog]
如果用yaml文件修改springboot的Tomcat默认端口号,在配置文件中添加端口号的参数
注意缩进关系以及(空格+值)
server:
port: 80
yaml注入配置文件
- 在springboot项目中的resources目录下新建一个文件 application.yml
在springboot中的pom.xml文件的spring-boot-starter-parent父依赖中已经自动帮我们导出相应的资源文件
我们也可以利用yaml给实体类直接注入匹配值
- 编写一个实体类:
//注册bean到容器中
@Component
public class Dog {
private String name;
private Integer age;
public Dog() {
}
public Dog(String name, Integer age) {
this.name = name;
this.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