1. 程式人生 > >SpringProfile輕鬆切換多環境配置檔案

SpringProfile輕鬆切換多環境配置檔案

在專案開發的過程中,我們難免會遇到開發、測試、生產等環境的切換,而各個環境的配置肯定是不同的。傳統的辦法是在專案打包的時候修改配置檔案。但人為做的事情難免產生意外。Spring 為我們提供了一種多環境配置檔案同時存在,而執行/打包時僅執行所選的配置檔案的方式。具體的介紹如下:

Spring提供了兩種屬性:

spring.profiles.active

spring:
  profiles:
#    active: yaya
    active: keats

指定啟用哪個檔案,值是 application-{profileName}.yml 中的 profileName。用於區分不同的執行環境。

PS:如果 application.yml 和被啟用的 yml 中同時配置了一個相同的鍵,被啟用的yml中的值會覆蓋 application.yml 中的值。

spring.profiles.include

spring:
  profiles:
    include: yayaDB,yayaRedis

指定包含(合併)多個yml的內容一起啟動。這樣有助於同環境下yml檔案的分類管理

PS:像上面 include 值是多個的情況,除了使用 , 分隔的輸入方式外,還可以使用 換行 - profileName 的方式,這是 yml 的一種語法。如果不清楚 yml 的語法,可以參考 SpringBoot入門及YML檔案詳解

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

接下來是一個示例的DEMO專案,專案的結構如下:

各檔案內容如下:

application.yml

spring:
  profiles:
    active: yaya
#    active: keats
server:
  port: 9001 # 如果被啟用的 yml 中有相同的配置,會覆蓋此值

application-keats.yml

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.yml

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

取消勾選: Single instance only

相關推薦

SpringProfile輕鬆切換環境配置檔案

在專案開發的過程中,我們難免會遇到開發、測試、生產等環境的切換,而各個環境的配置肯定是不同的。傳統的辦法是在專案打包的時候修改配置檔案。但人為做的事情難免產生意外。Spring 為我們提供了一種多環境配置檔案同時存在,而執行/打包時僅執行所選的配置檔案的方式。具體的介紹如下: Spring提供了兩種屬性: s

spring 筆記3: Spring 環境配置檔案切換

使用Spring進行開發時,需要面對不同的執行環境,比如開發環境、測試環境、生產環境等。大多時候不同的環境需要不同的配置檔案。網上很多資料都是使用Spring的Bean definition profiles 功能來實現(https://docs.spring.io/spring/docs/4.2.

spring boot環境配置檔案讀取不到的問題。

程式碼架構: 其中application.yaml中就三行程式碼: 作用是在IED啟動的時候指定當前環境。 但是其實我不是這麼做的,而是在idea中指定。 產生問題: 引入了一個自己寫的starter[jar包],jar包中配置了test環境的配置。但是專案啟動的時候指定了prof

application.properties環境配置檔案、jar包外部配置檔案配置項加密、程式中配置使用

一、簡介 spring boot專案application.properties檔案存放及使用介紹 二、方法一多環境配置檔案 我們一般都會有多個應用環境,開發環境、測試環境、生產環境,各個環境的配置會略有不同,我可以根據這個建立多份配置檔案,由主配置檔案來控制讀取那個子配置 建立spring boot專案

springboot環境配置檔案

springboot在多環境配置上有很好的支援,先說一下為什麼需要多環境。在軟體開發,測試上線的過程中,我們可能用到的配置引數是不同的,最明顯的是資料庫的連線地址。那麼在不同的環境中我們如何通過讀取不同的配置檔案呢?springboot提供了一套約定優於配置的方案。1、在ap

Spring-boot與maven環境配置檔案設定

通常在開發時,不同的環境有不同的配置引數,通常會使用maven profile來選擇不同環境的配置檔案。下面介紹spring-boot專案如何與maven結合,來根據環境選擇不通的配置引數。 建立屬性配置檔案 首先為不同的環境配置不同的屬性配置檔案,命名

Maven 環境配置檔案管理

通常,專案在生產環境跟開發環境中,配置引數多少會有一點差異,比如:日誌路徑、資料庫地址等等。所以每次打生產環境的包,需要修改一些配置檔案,如果手工修改配置檔案的話,就太浪費人力物力,而且還容易手滑改錯。 實際開發中需要根據不同環境將資源分別存放,構建部署包的時

SpringBoot系統列 2 - 配置檔案環境配置(dev,qa,online) SpringBoot系統列 1 - HelloWorld!

 實現專案的多環境配置的方法有很多,比如通過在Pom.xml中配置profiles(最常見) 然後在Install專案打War包的時候,根據需求打不同環境的包,如圖: 這種配置多環境的方法在SSM框架中使用的最多,但在SpringBoot中使用最多的是在啟動SpringBoot專案的時候指定執

Maven 進行環境配置,使用profile檔案進行配置

說明:Spring和Maven都可以進行profile配置多環境,這裡只介紹Maven進行管理。我的開發環境:eclipse+maven 檔案結構目錄:     步驟: 一、在pom.xml檔案中,新增如下: <profiles> <pr

Spring Boot 配置檔案詳解:自定義屬性、隨機數、環境配置

相信很多人選擇Spring Boot主要是考慮到它既能兼顧Spring的強大功能,還能實現快速開發的便捷。我們在Spring Boot使用過程中,最直觀的感受就是沒有了原來自己整合Spring應用時繁多的XML配置內容,替代它的是在pom.xml中引入模組化的Starter POMs,其中各個模組都有自己的預

Spring boot 的profile功能如何實現環境配置自動切換

通常服務端應用開發需要經過以下幾個流程: 開發 -> 測試 -> RC驗證 -> 上線 這就涉及到四個不同的環境,開發環境、測試環境、RC環境以及生產環境,為了避免不同環境之間相互干擾,通常需要獨立部署資料庫、快取伺服器等,那麼應用配置也要做相應的調整。

SpringBoot入門筆記09——屬性配置檔案詳解以及環境配置

SpringBoot的外部配置 Spring Boot允許將配置外部化(externalize) ,這樣你就能夠在不同的環境下使用相同的程式碼。你可以使用properties檔案,YAML檔案,環境變數和命令列引數來外部化配置。使用@Value註解,可以直接將屬性值注入到beans中,然

Linux環境庫svn安裝與配置(獨立庫,配置檔案

[先在伺服器中開啟放行 3690 埠!!!] (1)檢視是否已經安裝了svn 命令:svnserve --version 沒有安裝,出現下面資訊-> 已經安裝,出現下面版本資訊-> 檢視安裝svn的路徑資訊:rpm -ql subversion

maven環境配置檔案命名

網上有很多相關的配置的部落格,都比較零散。找到了可以用的方案,測試有效,做記錄備份~ 專案中很多配置項,全部彙總到resources/properties目錄下,但是測試環境和生產環境的專案需要的配置檔案是不一樣的,每次打包部署不可能還修改配置檔案,因此想到偷懶。 包含兩個效

springMVC的環境配置_基於springprofile

記錄一下springMVC專案的多環境的切換。基於springprofile。 一 簡單實現      1 首先將配置檔案進行分離,分成development(本地環境)、test(測試環境)、production(正式環境)  配置檔案目錄如下 common

springboot 配置檔案環境配置

在實際做專案的時候,至少有3個執行環境,開發環境、測試環境、生產環境。不同的環境下,存在不同的配置,例如資料庫、下載、上傳地址等。 在以往的專案開發中,大多數情況下都是將專案放在不同的環境時再修改相應的配置檔案,或者自己先將配置複製一份,然後覆蓋一下,功能到是不麻煩,但是如

Spring Boot基礎4-配置檔案-環境配置

一. 多環境配置的好處: 1.不同環境配置可以配置不同的引數 2.便於部署,提高效率,減少出錯 二. Properties多環境配置 1. 配置啟用選項 spring.profile

spring boot 環境配置讀取屬性檔案

相信很多人選擇Spring Boot主要是考慮到它既能兼顧Spring的強大功能,還能實現快速開發的便捷。我們在Spring Boot使用過程中,最直觀的感受就是沒有了原來自己整合Spring應用時繁多的XML配置內容,替代它的是在pom.xml中引入模組化的Starte

springboot 配置檔案環境配置

1. application.properties 在父配置檔案(application.properties)中啟用要選用的子配置檔案 spring.profiles.active=dev 子配置檔案 dev 內容如下: server.port=9996 sprin

51. spring boot屬性檔案環境配置【從零開始學Spring Boot】(

【視訊&交流平臺】 http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=40000000