<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          這波啊~這波是多環(huán)境配置

          共 3592字,需瀏覽 8分鐘

           ·

          2021-11-16 19:55

          文章已收錄到我的Github精選,歡迎Star:https://github.com/yehongzhi/learningSummary

          前言

          一般來說,在日常開發(fā)中都會分多個環(huán)境,比如git代碼分支會分為dev(開發(fā))、release(測試)、pord(生產(chǎn))等多個環(huán)境。可以說每個環(huán)境對應(yīng)的配置信息(比如數(shù)據(jù)庫、緩存、消息隊列MQ等)都不相同。因此不同的環(huán)境肯定需要對應(yīng)不同的配置文件。接下來學(xué)習(xí)一下怎么配置多環(huán)境的配置文件。

          SpringBoot多環(huán)境配置

          因為SpringBoot做多環(huán)境配置比較簡單,而且現(xiàn)在大部分項目基本都會使用SpringBoot,所以這里就介紹怎么用SpringBoot做多環(huán)境配置。

          單文件版本

          單文件在實際中使用得并不多,不過也可以實現(xiàn)多環(huán)境配置,這里簡單介紹一下。以application.yml配置文件舉例,你要在一個配置文件里面配置多個環(huán)境的配置,肯定需要分割線將其隔開,所以SpringBoot就規(guī)定了使用---進(jìn)行隔開每個環(huán)境。

          spring:
          ??application:
          ????name:?mydemo
          ??profiles:
          ????active:?prod?#?選擇prod環(huán)境配置
          #整合mybatis
          mybatis-plus:
          ??mapper-locations:?classpath:mapper/*Mapper.xml
          ??type-aliases-package:?com.yehongzhi.mydemo.model
          ??configuration:
          ????log-impl:?org.apache.ibatis.logging.stdout.StdOutImpl
          ---
          #?開發(fā)環(huán)境
          server:
          ??port:?8080
          spring:
          ??profiles:?dev
          ??datasource:
          ????driver-class-name:?com.mysql.jdbc.Driver
          ????url:?jdbc:mysql://DEV_IP:3306/user?createDatabaseIfNotExist=true
          ????username:?root
          ????password:?123456
          ---
          #?測試環(huán)境
          server:
          ??port:?8090
          spring:
          ??profiles:?release
          ??datasource:
          ????driver-class-name:?com.mysql.jdbc.Driver
          ????url:?jdbc:mysql://RELEASE_IP:3306/user?createDatabaseIfNotExist=true
          ????username:?root
          ????password:?123456
          ---
          #?生產(chǎn)環(huán)境
          server:
          ??port:?8888
          spring:
          ??profiles:?prod
          ??datasource:
          ????driver-class-name:?com.mysql.jdbc.Driver
          ????url:?jdbc:mysql://PROD_IP:3306/user?createDatabaseIfNotExist=true
          ????username:?root
          ????password:?123456

          單文件配置多環(huán)境的缺點很明顯,就是會導(dǎo)致這個application.yml文件非常大,不夠清晰。最好是一個環(huán)境單獨一個文件,這樣就清晰很多。于是乎就有了多文件版本。

          多文件版本

          一般SpringBoot的配置文件都是叫application.yml或者application.properties,這里用application.yml舉例,配置多環(huán)境配置文件,文件名需要滿足這樣的格式:application-{profile}.yml。看下圖就明白了。

          eb83f29fca2ed0082616252d1c2fb3ce.webp

          換而言之,dev環(huán)境的配置文件就叫做application-dev.yml,那么怎么選擇哪個環(huán)境的配置文件呢,其實很簡單,只需要在application.yml加上如下配置:

          spring:
          ??profiles:
          ????active:?dev

          這就表示選擇加載application-dev.yml文件,何以見得?

          一般在啟動完成之后,我們可以在控制臺搜索關(guān)鍵字profiles找到對應(yīng)的環(huán)境。

          07333fbd2037e58155f546d7e9e5e263.webp

          所以我們就可以在application.yml里面,通過spring.profiles.active切換不同的環(huán)境。這就是多文件版本。

          但是我們在平時開發(fā)時發(fā)現(xiàn),這個配置要經(jīng)常改來改去,非常麻煩,有沒有不用改這個配置就可以切換的方法呢?當(dāng)然有。

          首先在pom.xml文件增加以下環(huán)境變量的配置。

          <profiles>
          ????<profile>
          ????????<id>devid>
          ????????<properties>
          ????????????<profiles.active>devprofiles.active>
          ????????properties>
          ????profile>
          ????<profile>
          ????????<id>releaseid>
          ????????<properties>
          ????????????<profiles.active>releaseprofiles.active>
          ????????properties>
          ????profile>
          ????<profile>
          ????????<id>prodid>
          ????????<properties>
          ????????????<profiles.active>prodprofiles.active>
          ????????properties>
          ????profile>
          profiles>

          接著在application.yml配置文件中使用@profiles.active@來配置環(huán)境變量。

          spring:
          ??profiles:
          ????active:?'@profiles.active@'

          接著刷新Maven,可以在IDEA右側(cè)中選擇對應(yīng)的環(huán)境,如下圖:

          2b0bfdd676b134fa0c2e2a5b44a014d1.webp

          當(dāng)需要切換環(huán)境時,就不需要改配置文件的內(nèi)容,只需要勾選對應(yīng)的環(huán)境即可,就方便很多。

          結(jié)合Nacos配置中心

          一般在項目開發(fā)中,都需要配置信息能夠在運行時更改配置,于是乎就有了配置中心的概念。配置中心當(dāng)然也有多環(huán)境的配置。

          在Nacos配置中心就有命名空間的概念,我們可以使用命名空間來實現(xiàn)多環(huán)境配置。首先引入Maven依賴:

          <dependencies>
          ????<dependency>
          ????????<groupId>com.alibaba.cloudgroupId>
          ????????<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
          ????????<version>2.0.2.RELEASEversion>
          ????dependency>
          dependencies>
          <profiles>
          ????<profile>
          ????????<id>devid>
          ????????<properties>
          ????????????<profiles.active>devprofiles.active>
          ????????properties>
          ????profile>
          ????<profile>
          ????????<id>releaseid>
          ????????<properties>
          ????????????<profiles.active>releaseprofiles.active>
          ????????properties>
          ????profile>
          ????<profile>
          ????????<id>prodid>
          ????????<properties>
          ????????????<profiles.active>prodprofiles.active>
          ????????properties>
          ????profile>
          profiles>

          第二步,啟動Nacos,然后在創(chuàng)建對應(yīng)的命名空間和配置文件。

          f9d533a91652416ad75fed561687c9bb.webp317b07777233645aa7f535cab62c422a.webp

          第三步,在項目中增加bootstrap.yml文件。

          spring:
          ??application:
          ????name:?mydemo
          ??profiles:
          ????active:?'@profiles.active@'
          ??cloud:
          ????nacos:
          ??????config:
          ????????server-addr:?127.0.0.1:8848
          ????????file-extension:?yaml
          ????????group:?DEFAULT_GROUP
          ????????namespace:?a4a33d52-371b-451a-a3c1-d01c1d343331?#dev命名空間的ID
          ????????enabled:?true
          ????????prefix:?${spring.application.name}
          ????????refresh-enabled:?true

          在IDEA配置項目啟動時設(shè)置環(huán)境變量。

          f519e0d782c1dddd948436bf6c4befca.webp

          這樣就完成了,啟動項目,就可以讀到Nacos配置中心的dev命名空間的mydemo-dev.yaml文件。

          因為DataId的定義規(guī)則是${prefix}-${spring.profiles.active}.${file-extension}

          prefix默認(rèn)規(guī)則是獲取${spring.application.name}的值。可以通過spring.cloud.nacos.config.prefix進(jìn)行配置。

          spring.profiles.active即為當(dāng)前環(huán)境對應(yīng)的profile。可以通過spring.profiles.active進(jìn)行配置。

          file-extension為配置文件的數(shù)據(jù)格式。可以通過spring.cloud.nacos.config.file-extension進(jìn)行配置。

          總結(jié)

          以上就是多環(huán)境配置的三種方式,多環(huán)境配置基本上是創(chuàng)建新項目的基本操作,所以掌握多環(huán)境配置還是很有必要的。感謝大家的閱讀,希望看完之后能對你有所收獲。

          覺得有用就點個贊吧,你的點贊是我創(chuàng)作的最大動力~

          我是一個努力讓大家記住的程序員。我們下期再見!!!

          能力有限,如果有什么錯誤或者不當(dāng)之處,請大家批評指正,一起學(xué)習(xí)交流!

          瀏覽 41
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  人人操人人干在线观看 | AV国产在线观看 | 日本一级色情片 | 99草在线观看 | 日韩Av无码一区二区三区不卡 |