头图

前言
Spring Boot 中提供一个全局的配置文件:application.properties,这个配置文件的作用就是,允许我们通过这个配置文件去修改 Spring Boot 自动配置的默认值。
Spring Boot 支持两种格式的配置文件:application.properties 和 application.yml。
yml 等同于 yaml,写法看个人喜欢,我喜欢写成 application.yml
不同后缀不同写法
application.properties 和 application.yml ,它们的区别在于语法不同,但本质上是一样的。application.properties 使用键值对的方式来配置,而 application.yml 使用缩进和冒号的方式来配置。
properties
properties 作为后缀的配置文件,语法是这样的:key = value,如果有多级配置项,则是 first.second.third = value。
properties 代码解读复制代码key=value
first.second.third=value

示例:

定义属性:

properties 代码解读复制代码key=value
game.name=GTA5

这里的 key 和 game.name 都是属性名称,而 value 和 GTA5 是属性的值。

定义 List:

properties 代码解读复制代码game.list=GTA5,NBA2K,AC

这里的 game.list 这个列表包含了 3 个元素。

定义 Map:

properties 代码解读复制代码game.map.key1=value1
game.map.key2=value2

这里的 game.map 是一个 Map,这个 Map 包含了两个元素,key1 映射到 value1,key2 映射到 value2

引用已定义的属性:

properties 代码解读复制代码game.name=GTA5

引用上面已定义的属性

great.game=${game.name}

yml (yaml)
yml 作为后缀的配置文件,语法是这样的:key: value。使用冒号代替等号,同时冒号后面需要跟上一个空格符,不可省略。
yaml 代码解读复制代码key: value
first:
second:

third: value

示例:

定义属性:

yaml 代码解读复制代码key: value
game:
name: GTA5

定义 List:

yaml 代码解读复制代码game:
list:

- GTA5
- NBA2K
- AC

定义 Map:

yaml 代码解读复制代码game:
map:

key1: value1
key2: value2

引用已定义的属性:

yaml 代码解读复制代码game:
name: GTA5
great:
game: @{game.name}

不同环境下切换不同的配置文件
一般项目中在不同环境下都有不同的配置,还是以这个 Tomcat 的端口号为例:
目前有 3 个环境,分别是开发环境、测试环境、生产环境。在开发环境下,端口号是 4790;测试环境下,端口号是 4791;生产环境下是 4792。
application-dev.yml
yaml 代码解读复制代码server:
port: 4790

application-test.yml
yaml 代码解读复制代码server:
port: 4791

application-prod.yml
yaml 代码解读复制代码server:
port: 4792

spring.profiles.active
现在,通过 spring.profiles.active 这个配置项,在 application.yml 中指定我们想要切换的配置文件,现在指定使用开发环境的配置文件:
yaml 代码解读复制代码# 指定使用 application-dev.yml 这个配置文件
spring:
profiles:

active: dev

启动 Spring Boot 应用,控制台输出:
console 代码解读复制代码2023-03-16 15:41:48.122 INFO 3356 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 4790 (http) with context path ''

指定使用测试环境下的配置文件:
yaml 代码解读复制代码# 指定使用 application-test.yml 这个配置文件
spring:
profiles:

active: test

启动 Spring Boot 应用,控制台输出:
console 代码解读复制代码2023-03-16 15:42:21.462 INFO 24548 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 4791 (http) with context path ''

同理,指定使用生产环境的配置文件也是一样的做法。


运维社
12 声望4 粉丝