什么是 Spring Profiles?
Spring Profiles 允许用户根据配置文件(dev,test,prod 等)来注册 bean。因此,当应用程序在开发中运行时,只有某些 bean 可以加载,而在 PRODUCTION中,某些其他 bean 可以加载。假设我们的要求是 Swagger 文档仅适用于 QA 环境,并且禁用所有其他文档。这可以使用配置文件来完成。Spring Boot 使得使用配置文件非常简单。
什么是Profiles?
Profile 可以让 Spring 对不同的环境提供不同配置的功能,可以通过激活、指定参数等方式快速切换环境
多Profiles形式
在实际的软件开发中,会有许多环境来选择,常用开发环境、测试环境、生产环境,这就需要多个配置文件来进行不同环境的配置,比如端口号、数据库的不同,为了提高开发效率,不在每更换一次环境就改一次配置,我们可以使用多设置几个配置文件来区分不同环境。文件格式可以是 application-{profile}.properties/yml ,但默认是启动主配置文件application.properties
我们可以在主配置文件中随时切换成其他配置文件。比如我创建了三个配置文件
application.properties
:主配置文件application-dev.properties
:开发环境配置文件application-test.properties
:测试环境配置文件application.prop-properties
:生产环境配置文件
可以为每个配置文件设置不同的端口:
application-dev.properties
#开发环境 server.port = 8081
application-test.properties
#测试环境 server.port = 8082
application-porp.properties
#生产环境 server.port = 8083
这个时候需要里面切换到开发环境,则可以在主配置文件中使用如下指令:
# 本地环境 server.port=8080 # 切换到开发环境 spring.profiles.active=dev
YML多文档块方式
在 xxx.yml
配置文件中,每使用一个 ---分割代表分割成了一个文档块,可以在不同的文档块中进行配置,并在第一个文档块对配置进行切换
配置一个多文档块的 yml 文件
server: port: 8080 spring: profiles: active: test # 切换配置 --- # 开发环境 server: port: 8081 spring: profiles: dev --- # 测试环境 server: port: 8082 spring: profiles: test --- # 生产环境 server: port: 8083 spring: profiles: prop
此时需要在第一个多文档块中切换配置,当切换到某一个配置后,该配置(文档块)下的所有配置都能生效
YML多配置文件配置:
application.yml:
server: port: 8024 spring: profiles: active: dev
在主配置中对需要使用的环境进行选择来切换环境
也可以在IDEA 的 Program arguments 进行设置 --spring-profiles.active=dev
------------------------------------------------------------------------------------------------------------------over----------------------------------------------------------------------------------------------------------------
此文转自https://blog.csdn.net/babycan5/article/details/86097608