SpringBoot多环境配置
写在前面
在实际项目的开发过程中,我们程序往往需要在不同环境中运行。例如:开发环境、测试环境和生产环境。
每个环境中的配置参数可能都会有所不同,例如数据库连接信息、文件服务器等等。
Spring Boot 提供了非常方便的方式来管理这些不同环境的配置。
一、Spring Profile 介绍
Spring Profile
是
Spring
框架用于处理不同环境配置的解决方案。
Profile
可以帮助我们在不改变应用代码的情况下,根据当前环境动态地激活或者切换不同的配置。
Spring Boot
为每个
Profile
提供了一个独立的
application.properties
(或
application.yml
)配置文件。
默认情况下,
Spring Boot
使用的是
application.properties
文件。
当你激活一个特定的
Profile
时,
Spring Boot
会查找名为
application-{profile}.properties
的文件,并把其中的属性加载到
Spring Environment
中。
二、Properties与YAML
Spring Boot
支持使用
Properties
和
YAML
两种配置方式。
两者功能类似,都能完成
Spring Boot
的配置,但是
Properties
的优先级要高于
YMAL
2.1
Properties
Spring Boot
默认的配置文件格式以“.”为分割的key=value键值对,例如,指定端口为8080 配置如下
server.port=8080
不支持复杂的数据结构,只支持字符串类型的键值对。因此,它的使用适用于简单的配置场景
2.2
YAML
采用树状结构,一目了然
server: port: 8080
在key后的冒号一定要跟一个空格,如“port: 8080”
YAML
格式文件不支持注解
@PropertySource
导入配置支持复杂的数据结构,如列表和键值对,因此,
YAML
的使用适用于需要表示复杂数据结构的场合
2.3 如何选择
在
Spring Boot
应用中,你可以根据自己的实际需求,选择使用
YAML
还是
Properties
格式的配置文件。
如果你的配置比较简单,
Properties
格式可能会更好些。
如果你的配置比较复杂,或者你希望配置文件更具可读性,那么
YAML
格式可能是更好的选择
三、创建配置文件
3.1 创建配置文件
在实际项目开发中,我们一般有三个环境:开发(
dev
)、测试(
test
)、生产(
prod
)。我们需要建立如下几个配置文件
application.yml
或者
application.properties
用于存放所有环境通用的配置application-dev.yml
或者
application-dev.properties
存放开发环境的特殊配置application-test.yml
或者
application-test.properties
存放测试环境的特殊配置application-prod.yml
或者
application-prod.properties
存放生产环境的特殊配置
3.2 配置文件内容
①配置开发环境
application-dev.yml
server:
port: 8080
tomcat:
uri-encoding: UTF-8
environment:
name: 开发环境
application-dev.properties
server.port=8080
server.tomcat.uri-encoding=UTF-8
environment.name=开发环境
②配置生产环境
application-prod.yml
server:
port: 8090
tomcat:
uri-encoding: UTF-8
environment:
name: 生产环境
application-prod.properties
server.port=8090
server.tomcat.uri-encoding=UTF-8
environment.name=生产环境
application-test.yml
和
application-test.properties
配置文件类似,由于篇幅原因,这里就不一一例举了
四、激活 Profile
在上一小节中,我们创建了三个配置文件即配置了三种环境,那么我们怎么才能激活对应环境呢
4.1 配置文件激活
其实很多简单,我们只需要在
application.yml
或者
application.properties
添加如下配置即可,即可激活开发环境
①
application.yml
# application.yml
spring
profiles:
active: dev
②
application.properties
spring.profiles.active=dev
4.2 启动参数激活
在命令行中设置
spring.profiles.active
系统属性。
例如,你可以使用以下命令来启动你的应用,并激活 "prod" 环境:
# 企业级项目开发中,针对生产环境,一般通过启动命令再指定激活生产 环境
java -jar $APP_NAME --spring.profiles.active=prod
4.3 环境变量激活
我们还可以通过配置服务器系统环境变量来激活环境,在环境变量中设置
SPRING_PROFILES_ACTIVE
即可,不过这种方式不常用,了解即可
五、测试是否生效
上一小节中,我们通过配置激活了开发环境,我们就来实际验证以下是否生效。
出现下图红框表示部分,说明我们激活了
dev
开发环境
本期内容就到这了,希望对你有所帮助,我们下期再见 (●'◡'●)