springBoot的yaml配置和多环境的切换

yaml配置文件的写法

springboot提供了一个全局的配置文件,文件名必须为application,格式可以为properties和yaml\yam,官方推荐我们使用yaml或者yam形式
两种合适的区别:
properties文件存储方式:
  key=value
yaml方式存储:
  key: 空格value

yaml格式文件语法:

yaml存储单个的值(字符串、数值、布尔等)

key: value
注意:一定要注意格式,中间会有一个空格。
双引号不会转义特殊字符 \n就代表了换行
单引号会自动转义特殊字符,会把特殊字符作为字符串输出

yaml存储map格式\对象格式数据

key:
	key1: v1
	key2: v2
例子:map
maps:
	haha: 13
	lala: 24
对象:
person:
	name: 张三
	age: 12

可以转换为行内写法
key: {
    
    key1: v1,key2: v2}
例如:
	person: {
    
    name: 张三,age: 18}
注意格式写法,不要把空格忘了

yaml数组格式数据:

格式:
key:
	- v1
	- v2
	- v3
	- ...
例子
lists:
	- haha
	- lala
	- papa
行内写法:
key: [v1,v2,v3]
例子:
lists: [haha,lala,papa]

2.yaml的使用

一般的配置文件,都是给javabean中的属性赋值用的,properties文件被加载后(也可以@PropertiesSource(value=“classpath:xxx.properties”)加载指定的文件),我们可以使用${key}来获取value的值,而我们的yaml则没有那么麻烦。

1.在项目的resources目录下,创建application.yaml文件(会自动的被springBoot识别)
在这里插入图片描述
2.创建pojo包,并创建2个用于测试的实体类:
在这里插入图片描述
3.在application.yaml文件中配置:
在这里插入图片描述
springBoot会自动的加载application开头的properties或者yaml文件,然后通过@ConfigurationProperties(prefix = “person”)这个注解,匹配到yaml文件里面的person,最终通过实体类的set方法,给属性赋值:
在这里插入图片描述
这样我们可以很方便的给属性赋值了。

3. 解决使用注解绑定yanl文件是出现红色警告的问题

在这里插入图片描述

绑定之后,实体类上会一直有这个红色的,我们可以导入一个依赖,然后重启就可以消失掉了

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
</dependency>

4.yaml占位符

person:
    name: qinjiang${
    
    random.uuid} # 随机uuid
    age: ${
    
    random.int}  # 随机int
    happy: false
    birth: 2000/01/01
    maps: {
    
    k1: v1,k2: v2}
    lists:
      - code
      - girl
      - music
    dog:
    #如果person.hello存在,就是用person.hello的值,不存在使用other	
      name: ${
    
    person.hello:other}_旺财
      age: 1

5. 结论:

结论摘录自:狂神说java
在这里插入图片描述




# 多环境切换及配置文件的优先级 ## 1.多环境切换 1.yaml方式: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116160053845.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQzMTEyMw==,size_16,color_FFFFFF,t_70)

默认使用的是上边的那个,当我们想要使用其他环境时,可以在默认的里面添加:
在这里插入图片描述

2.properties文件切换环境
只需要创建一个默认的配置文件
application.properties
其他的环境可以为:application-xxx.properties
当我们要切换的时候,在application.properties文件中,添加代码

spring.profiles.active=xxx

即可替换


配置文件的存放位置及优先级

配置文件可以存放在:
项目跟目录下的config目录下
项目根目录
classpath(resources)下的config目录下
classpath下

当配置文件名称相同时,优先级为:
项目目录下的config 》 项目的根目录 》 classpath下的config目录 》 classpath下的

猜你喜欢

转载自blog.csdn.net/weixin_43431123/article/details/112709349