目录
springboot的两种全局配置文件
yaml的三种写法
配置文件读取
多环境配置
springboot的两种全局配置文件
springboot提供了两种全局配置文件的支持,分别是:
application.properties
application.yml
配置文件路径为:src/main/resources/application.yml或src/main/resources/application.properties
properties的语法没有什么特别的要求,这里主要对yml格式的文件进行讲解
1、注释:#
2、使用键值形式存储:K:(空格)V
即K:与V之间必须有空格,空格数不定
3、使用缩进代表层级,左对齐的属于同一层级。
4、大小写敏感
5、字符串不需要使用" "或' ',如果使用 " ",则如果字符串中含有转义字符,则会生效,如" my name is \n zhangsan ",输出结果为my name is(换行)zhangsan ;如果使用 ' ',则作用和不加 ' ' 效果一样
基本格式:
key1:
key2:
key3: value
如果不按格式书写,则系统会报错,文件识别错误。
yaml的三种写法
1、普通值:
key: value
2、对象、哈希(map):
key1:
key2: value2
key3: value3
或
key1: {key2: value2,key3: value3}
3、数组、集合:
注意:- 和 value之间也是有空格的
key:
- value1
- value2
- value3
或
key: [value1,value2,value3]
配置文件读取(将配置文件中的值与某个类进行绑定)
1、首先根据官方文档需要加入一个组件
通过使用注解处理器生成自己的数据
将依赖复制到maven工程中
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
2、添加注解(绑定的类上添加注解)
既然加入了注解处理器,当然是要使用注解的功能
格式一般为:
@ConfigurationProperties(prefix = "acme.messaging")
prefix代表前缀,对应的值表示配置文件中的key,取哪一个key,那么对应的就表示绑定哪个key下的value
最后还需要加入@Component注解,表示加入到容器中去。
多环境配置
多环境配置即在不同环境下采用不同的配置。如开发环境下我么有使用开发环境的配置等等
springboot提供了便捷的方式让我们创建多环境配置。而不需要每次改变环境的使用手动修改,或者手动修改maven的配置。
1、配置文件名命名:
application-{profile}.properties/yml,profile可以替换成任意字符或字符串,当然在默认情况下,系统采用原始配置文件application.properties/yml。如何制定别的配置文件呢?
以yml文件为例:
2、指定配置文件:
假如我们创建了两个配置文件,application-dev.properties/yml,application-test.properties/yml
如果要指定dev配置文件作为我们此次配置
只需要在application.properties中添加
spring.profiles.active=dev
如果是yml文件,则在application.yml配置文件中添加
spring:
profiles:
active: dev
那么程序运行的时候就会采用指定的配置文件启动。
以yaml为例
application.yml
server:
port: 8080
application-dev.yml
server:
port: 8081
先不做任何设置,启动程序:
可以看到程序使用的8080端口,说明默认情况下使用的是application.yml 的配置
接下来在application.yml中添加一下配置
spring:
profiles:
active: dev
再次启动程序
可以看到程序启动了8081端口,说明配置生效
3、yml多环境配置的另一种写法
yml文件还有另一种多环境配置方式,即在同一文件下可以创建多种环境,不需要创建多个配置文件,不过一般不推荐使用这种方式
通过 --- 作为分隔。并且以spring: profiles: 命名配置文件
server:
port: 8080
spring:
profiles:
active: dev
---
server:
port: 8081
spring:
profiles: dev
---
server:
port: 8082
spring:
profiles: test
启动程序
配置成功!