日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SpringBoot中根據(jù)環(huán)境加載不同的配置的方案

前言

我們的一個應(yīng)用,開發(fā)上線,需要一定的流程,比如需要先在測試環(huán)境中進行測試,測試環(huán)境中有它的一整套配置,如MySQL、Redis、MQ等。

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)柘榮,十多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

測試環(huán)境測試完畢,我們會在預(yù)發(fā)環(huán)境再度測試,最后再上線,即線上環(huán)境。每個環(huán)境都有他們自己獨有的一套配置,而代碼邏輯都是一樣,就是環(huán)境配置不一樣而已。

如何低耦合地分離各個環(huán)境的配置,就是我們所追求的,下面闡述下SpringBoot中的方案。

方案

我寫了個demo,下面是它的代碼結(jié)構(gòu):

1.業(yè)務(wù)代碼

下面假定以下是業(yè)務(wù)代碼,主要就是從配置文件中讀取env的值,并返回出去:

 
 
 
 
  1. package com.example.configenv.controller; 
  2.  
  3. import org.springframework.beans.factory.annotation.Value; 
  4. import org.springframework.web.bind.annotation.GetMapping; 
  5. import org.springframework.web.bind.annotation.RequestMapping; 
  6. import org.springframework.web.bind.annotation.RestController; 
  7.  
  8. @RestController 
  9. @RequestMapping("/") 
  10. public class EnvController { 
  11.  
  12.     @Value("${env}") 
  13.     private String env; 
  14.  
  15.     @GetMapping("/env") 
  16.     public String showEnvValue() { 
  17.         return env; 
  18.     } 
  19.  

2.配置文件

配置文件中,application.yml是一個主配置,即無論如何,都會被加載的,類似SSM時代的spring-config.xml。里邊的邏輯,就一個active,就是指定配置環(huán)境:

 
 
 
 
  1. spring: 
  2.   profiles: 
  3.     active: dev 

對應(yīng)其他其他環(huán)境的配置,它們有2個點,一個是環(huán)境名稱on-profile,一個對應(yīng)環(huán)境下的值env。

 
 
 
 
  1. SpringBoot中根據(jù)環(huán)境加載不同的配置的方案 
  2. 原創(chuàng)2021-07-26 17:31·IT小村 
  3. 前言 
  4.  
  5. 我們的一個應(yīng)用,開發(fā)上線,需要一定的流程,比如需要先在測試環(huán)境中進行測試,測試環(huán)境中有它的一整套配置,如MySQL、Redis、MQ等。 
  6.  
  7. 測試環(huán)境測試完畢,我們會在預(yù)發(fā)環(huán)境再度測試,最后再上線,即線上環(huán)境。每個環(huán)境都有他們自己獨有的一套配置,而代碼邏輯都是一樣,就是環(huán)境配置不一樣而已。 
  8.  
  9. 如何低耦合地分離各個環(huán)境的配置,就是我們所追求的,下面闡述下SpringBoot中的方案。 
  10.  
  11. 方案 
  12.  
  13. 我寫了個demo,下面是它的代碼結(jié)構(gòu): 
  14.  
  15. SpringBoot中根據(jù)環(huán)境加載不同的配置的方案 
  16.  
  17.  
  18. 1.業(yè)務(wù)代碼 
  19.  
  20. 下面假定以下是業(yè)務(wù)代碼,主要就是從配置文件中讀取env的值,并返回出去: 
  21.  
  22. package com.example.configenv.controller; 
  23.  
  24. import org.springframework.beans.factory.annotation.Value; 
  25. import org.springframework.web.bind.annotation.GetMapping; 
  26. import org.springframework.web.bind.annotation.RequestMapping; 
  27. import org.springframework.web.bind.annotation.RestController; 
  28.  
  29. @RestController 
  30. @RequestMapping("/") 
  31. public class EnvController { 
  32.  
  33.     @Value("${env}") 
  34.     private String env; 
  35.  
  36.     @GetMapping("/env") 
  37.     public String showEnvValue() { 
  38.         return env; 
  39.     } 
  40.  
  41. 2.配置文件 
  42.  
  43. 配置文件中,application.yml是一個主配置,即無論如何,都會被加載的,類似SSM時代的spring-config.xml。里邊的邏輯,就一個active,就是指定配置環(huán)境: 
  44.  
  45. spring: 
  46.   profiles: 
  47.     active: dev 
  48. 對應(yīng)其他其他環(huán)境的配置,它們有2個點,一個是環(huán)境名稱on-profile,一個對應(yīng)環(huán)境下的值env。 
  49.  
  50. application-dev.yml 
  51.  
  52. spring: 
  53.   config: 
  54.     activate: 
  55.       on-profile: dev 
  56.  
  57. env: '測試環(huán)境' 

application-online.yml

 
 
 
 
  1. spring: 
  2.   config: 
  3.     activate: 
  4.       on-profile: pre 
  5.  
  6. env: '預(yù)發(fā)環(huán)境' 

application-online.yml

 
 
 
 
  1. spring: 
  2.   config: 
  3.     activate: 
  4.       on-profile: online 
  5.  
  6. env: '線上環(huán)境' 

3.驗證效果

當(dāng)我的主配置文件為如下時,即指定環(huán)境為dev測試環(huán)境

 
 
 
 
  1. spring: 
  2.   profiles: 
  3.     active: dev 

http://localhost:8080/env

可以看到,加載的是application-dev.yml的配置

而當(dāng)我的主配置文件是如下時,即加載的是online線上環(huán)境

 
 
 
 
  1. spring: 
  2.   profiles: 
  3.     active: online 

http://localhost:8080/env

可以看到,加載的是application-online.yml的配置。

其他

部署應(yīng)用的時候,我們只需要覆蓋application.yml即可,就可以在測試環(huán)境、預(yù)發(fā)環(huán)境、線上環(huán)境等環(huán)境,加載他們對應(yīng)的配置。


本文標(biāo)題:SpringBoot中根據(jù)環(huán)境加載不同的配置的方案
網(wǎng)頁路徑:http://www.dlmjj.cn/article/cdjdeco.html