目录

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

spring boot后台定义全局变量 springboot 全局变量存储_spring boot后台定义全局变量

如果不按格式书写,则系统会报错,文件识别错误。

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、首先根据官方文档需要加入一个组件

spring boot后台定义全局变量 springboot 全局变量存储_配置文件_02

通过使用注解处理器生成自己的数据

将依赖复制到maven工程中

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

2、添加注解(绑定的类上添加注解)

既然加入了注解处理器,当然是要使用注解的功能

spring boot后台定义全局变量 springboot 全局变量存储_配置文件_03

格式一般为:

@ConfigurationProperties(prefix = "acme.messaging")

prefix代表前缀,对应的值表示配置文件中的key,取哪一个key,那么对应的就表示绑定哪个key下的value

最后还需要加入@Component注解,表示加入到容器中去。

多环境配置

多环境配置即在不同环境下采用不同的配置。如开发环境下我么有使用开发环境的配置等等

springboot提供了便捷的方式让我们创建多环境配置。而不需要每次改变环境的使用手动修改,或者手动修改maven的配置。

1、配置文件名命名:

application-{profile}.properties/yml,profile可以替换成任意字符或字符串,当然在默认情况下,系统采用原始配置文件application.properties/yml。如何制定别的配置文件呢?

以yml文件为例:

spring boot后台定义全局变量 springboot 全局变量存储_spring boot后台定义全局变量_04

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

先不做任何设置,启动程序:

spring boot后台定义全局变量 springboot 全局变量存储_环境配置_05

可以看到程序使用的8080端口,说明默认情况下使用的是application.yml 的配置

接下来在application.yml中添加一下配置

spring:
  profiles:
    active: dev

再次启动程序

spring boot后台定义全局变量 springboot 全局变量存储_spring boot后台定义全局变量_06

可以看到程序启动了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

启动程序

spring boot后台定义全局变量 springboot 全局变量存储_spring_07

配置成功!