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

                                                          


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM