SpringProfile輕鬆切換多環境配置文件

在項目開發的過程當中,咱們不免會遇到開發、測試、生產等環境的切換,而各個環境的配置確定是不一樣的。傳統的辦法是在項目打包的時候修改配置文件。但人爲作的事情不免產生意外。Spring 爲咱們提供了一種多環境配置文件同時存在,而運行/打包時僅運行所選的配置文件的方式。具體的介紹以下:html

Spring提供了兩種屬性:

spring.profiles.active

spring:
  profiles:
#    active: yaya
    active: keats

指定激活哪一個文件,值是 application-{profileName}.yml 中的 profileName。用於區分不一樣的運行環境spring

PS:若是 application.yml 和被激活的 yml 中同時配置了一個相同的鍵,被激活的yml中的值會覆蓋 application.yml 中的值。數據庫

spring.profiles.include

spring:
  profiles:
    include: yayaDB,yayaRedis

指定包含(合併)多個yml的內容一塊兒啓動。這樣有助於同環境下yml文件的分類管理app

PS:像上面 include 值是多個的狀況,除了使用 , 分隔的輸入方式外,還可使用 換行 - profileName 的方式,這是 yml 的一種語法。若是不清楚 yml 的語法,能夠參考 SpringBoot入門及YML文件詳解ide

spring:
  profiles:
    include:
      - yayaDB # 注意換行和空格
      - yayaRedis

接下來是一個示例的DEMO項目,項目的結構以下:測試

1582377859097

各文件內容以下:fetch

application.ymlurl

spring:
  profiles:
    active: yaya
#    active: keats
server:
  port: 9001 # 若是被激活的 yml 中有相同的配置,會覆蓋此值

application-keats.ymlidea

server:
  port: 9000
eureka:
  server:
    enable-self-preservation: false # 關閉自我保護
    eviction-interval-timer-in-ms: 4000 # 剔除服務間隔,單位/ms
  instance:
    hostname: localhost
  client:
    register-with-eureka: false # 是否將本身註冊到註冊中心
    fetch-registry: false # 是否從Eureka中獲取註冊信息
    service-url: # Eureka Client 的請求地址
      defaultZone: http://#{eureka.instance.hostname}:#{server.port}/eureka/

application-yaya.ymlcode

spring:
  profiles:
    include: yayaDB,yayaRedis

application-yayaDB.yml

# 專門配置DB 的yml,實際項目中能夠根據需求,配置文件多了須要分類就分類,少了用不着分類就一種環境一個YML# 這裏由於Eureka服務用不到鏈接數據庫,用端口號配置信息代替
server: 
  port: 9100

application-yayaRedis.yml

# 能夠專門用來配置Redis的信息。這裏由於用不到Redis。我就用除端口之外的其餘配置信息填充了
eureka:
  server:
    enable-self-preservation: false # 關閉自我保護
    eviction-interval-timer-in-ms: 4000 # 剔除服務間隔,單位/ms
  instance:
    hostname: localhost
  client:
    register-with-eureka: false # 是否將本身註冊到註冊中心
    fetch-registry: false # 是否從Eureka中獲取註冊信息
    service-url: # Eureka Client 的請求地址
      defaultZone: http://#{eureka.instance.hostname}:#{server.port}/eureka/

按照以上的 yml 配置以後,就能夠經過註釋與放開不一樣的 active,來實現環境的切換了。

順便教你們另一個技能:

Idea將同一個項目屢次啓動

選擇對應的項目啓動類,點擊 Edit Configurations

1582378343139

取消勾選: Single instance only

1582378399992

相關文章
相關標籤/搜索