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