SpringBoot Profiles 的使用

什么是 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

                                                          

原文地址:https://www.cnblogs.com/zhukf/p/12673802.html