1、基本语法
k:(空格)v
- 表示一对键值对(空格必须有)
- 以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的
- 属性和值是大小写敏感的
server:
port: 8081
path: /hello
2、值的写法
2.1字面量:普通的值(数字,字符串,布尔)
k: v:字面直接来写;
2.2字符串默认不用加上单引号或者双引号;
“”:双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
name: “mingzi01 \n mingzi02”
输出;mingzi01 换行 mingzi02
”:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
name: ‘mingzi01 \n mingzi02’
输出;mingzi01 \n mingzi02
2.3对象、Map(属性和值):
分行写法:
friends:
lastName: zhangsan
age: 20
行内写法:
friends: {lastName: zhangsan,age: 18}
2.4数组(List、Set):
用 - 值表示数组中的一个元素
pets:
- cat
- dog
- pig
行内写法
pets: [cat,dog,pig]
3、配置文件值注入
配置文件
config-attributes:
value: 345 #对应单个值
valueArray: 1,2,3,4,5,6,7,8,9 #对应数组 valueList: #对应list - 13579 - 246810 valueMap: #对应map name: xiaoming age: 20 sex: female valueMapList: #对应list
javaBean:
@ConfigurationProperties(prefix = "config-attributes")
@ToString
public class Config { private String value; private String[] valueArray; private List<String> valueList; private HashMap<String, String> valueMap; private List<Map<String, String>> valueMapList; }
主类中添加注解@ConfigurationProperties
@SpringBootApplication
@ConfigurationProperties
public class Configtest1Application {
public static void main(String[] args) { SpringApplication.run(Configtest1Application.class, args); } }
<dependency>
<groupId>org.springframework.bootgroupId> <artifactId>spring-boot-configuration-processorartifactId> <optional>trueoptional> dependency>
1.直接取值配置参数
定义
stu:
name: mcx
age: 25
取值
@Value("${stu.name}")
private String name;
2.将yml配置赋给实体
stu:
name:mcx
age: 25
number: 9923
@Component
@ConfigurationProperties(prefix = "stu")
public class UserBean{
private String name; private int age; private int number; }
3.多环境配置文件
application.yml
spring:
profiles:
active: dev (指定读取第一个配置文件)
application-dev.yml:
server:
prot: 8080
application-test.yml:
server:
prot: 8081
application-prod.yml:
server:
prot: 8082