SpringBoot项目中,大部分配置都有默认值,先替换默认配置,可以使用
application.properties或者application.yaml
YAML扩展名.yam或者.yaml
大小写敏感
使用缩进代表层级关系
相同部分只出现一次
![](https://img.haomeiwen.com/i3519106/ef40be7fb6f043e3.png)
![](https://img.haomeiwen.com/i3519106/0759031f3516946a.png)
新建一个application.yaml 写上 下面代码;运行
![](https://img.haomeiwen.com/i3519106/e84f31d809a033a0.png)
一、配置简单数据
语法: 数据名: 值
如: password : 123456
二、配置对象
语法:
对象:
属性名1: 属性值
属性名2: 属性值
# 或者
对象: {属性名1: 属性值,属性名2: 属性值}
如下:
![](https://img.haomeiwen.com/i3519106/b8c499e0341b6b7a.png)
注意:属性名前面的空格个数不限,相同的缩进代表一个级别,每个属性前的空格数一样就好了。
三、自定义配置集合
语法:
集合:
- 值1
- 值2
# 或者
集合:[值1,值2]
如下:
![](https://img.haomeiwen.com/i3519106/f720da4b5e86caf4.png)
集合的元素也可以是对象,如下:
![](https://img.haomeiwen.com/i3519106/e23f4765fd0fbbc5.png)
四、@value 读取配置文件中的数据
注:只能拿某一个值、对象里面某个熟悉、集合某个元素
写个controller,@Value 注解可以将配置文件中的值映射到Bean属性中
![](https://img.haomeiwen.com/i3519106/2b87254874b4dc86.png)
![](https://img.haomeiwen.com/i3519106/6c5b11592413d474.png)
![](https://img.haomeiwen.com/i3519106/ba5faca5772ae238.png)
运行代码,在浏览器输入地址 http://127.0.0.1:8888/yaml1 可以看到浏览器出现“调用成功”
![](https://img.haomeiwen.com/i3519106/3879083b58e9a5fa.png)
![](https://img.haomeiwen.com/i3519106/41fd7b04bb3d4833.png)
五、@ConfigurationProperties 读取配置文件中的数据
通过@ConfigurationProperties可以将配置文件中的配置自动与实体进行映射,这样可以将yml文件中的配置对象属性直接映射到Bean中。
![](https://img.haomeiwen.com/i3519106/8bff2902f04f611c.png)
![](https://img.haomeiwen.com/i3519106/1a72c8c67b9350f6.png)
![](https://img.haomeiwen.com/i3519106/14e0fe5dd33d1e64.png)
再创建一个类 yamlController2
![](https://img.haomeiwen.com/i3519106/5007bda00484fca3.png)
![](https://img.haomeiwen.com/i3519106/78947602a9cbd3ba.png)
![](https://img.haomeiwen.com/i3519106/e6fdae65811dd305.png)
![](https://img.haomeiwen.com/i3519106/1af1e9c702edb7d5.png)
相同方式再生成 Setter
![](https://img.haomeiwen.com/i3519106/59d426b9a0c862e4.png)
加上注解:@ConfigurationProperties(prefix ="book")
![](https://img.haomeiwen.com/i3519106/62f75140ebda8c67.png)
![](https://img.haomeiwen.com/i3519106/85cb0ee175f616f8.png)
![](https://img.haomeiwen.com/i3519106/1bd8c9e5ecb4733d.png)
六、占位符${}配置与读取
作用(1):配置文件的值、使用配置文件的值
在yaml文件配置值,如下:
![](https://img.haomeiwen.com/i3519106/b811fd5fecad23b4.png)
创建个Controller,写上如下代码,读取myConfig.myPort,即server.port:
![](https://img.haomeiwen.com/i3519106/ca92d78d665dff4e.png)
运行,在浏览器输入 http://127.0.0.1:8888/yaml3
可以看到IDEA控制台输出8888
七、占位符${}随机生成数
例如:
# 随机生成数字
port1: ${random.value} # 随机生成uuid,无短杠
port2: ${random.uuid} # 随机生成uuid,有短杠
port3: ${random.int} # 随机生成整数
port4: ${random.int(10)} # 随机生成10以内数字
port5: ${random.int(100,200)} # 随机生成100-200的数
port6: ${random.long} # 随机生成长整型值
port7: ${random.long(100,200)} # 随机生成长整型100-200的值
八、配置文件存放位置和优先级
1、applicatio.yml、application.properties存放位置可以是:
优先级从高到低是:
根目录下的/config子目录 > 根目录下 > resources下的/config目录 > resources目录中
另外, .properties文件的优先级高于.yml
九、bootstrap
bootstrap是application的父容器,优先级高于application,也支持yaml、application。主要用于从外部引入Spring应用程序的配置
![](https://img.haomeiwen.com/i3519106/54fd8578ac67d8fa.png)
![](https://img.haomeiwen.com/i3519106/7d5c635b7a455b31.png)
网友评论