成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SpringBoot中根據環境加載不同的配置的方案

開發 架構
我們的一個應用,開發上線,需要一定的流程,比如需要先在測試環境中進行測試,測試環境中有它的一整套配置,如MySQL、Redis、MQ等。

[[413405]]

前言

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

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

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

方案

我寫了個demo,下面是它的代碼結構:

1.業務代碼

下面假定以下是業務代碼,主要就是從配置文件中讀取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,就是指定配置環境:

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

對應其他其他環境的配置,它們有2個點,一個是環境名稱on-profile,一個對應環境下的值env。

  1. SpringBoot中根據環境加載不同的配置的方案 
  2. 原創2021-07-26 17:31·IT小村 
  3. 前言 
  4.  
  5. 我們的一個應用,開發上線,需要一定的流程,比如需要先在測試環境中進行測試,測試環境中有它的一整套配置,如MySQL、Redis、MQ等。 
  6.  
  7. 測試環境測試完畢,我們會在預發環境再度測試,最后再上線,即線上環境。每個環境都有他們自己獨有的一套配置,而代碼邏輯都是一樣,就是環境配置不一樣而已。 
  8.  
  9. 如何低耦合地分離各個環境的配置,就是我們所追求的,下面闡述下SpringBoot中的方案。 
  10.  
  11. 方案 
  12.  
  13. 我寫了個demo,下面是它的代碼結構: 
  14.  
  15. SpringBoot中根據環境加載不同的配置的方案 
  16.  
  17.  
  18. 1.業務代碼 
  19.  
  20. 下面假定以下是業務代碼,主要就是從配置文件中讀取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,就是指定配置環境: 
  44.  
  45. spring: 
  46.   profiles: 
  47.     active: dev 
  48. 對應其他其他環境的配置,它們有2個點,一個是環境名稱on-profile,一個對應環境下的值env。 
  49.  
  50. application-dev.yml 
  51.  
  52. spring: 
  53.   config: 
  54.     activate: 
  55.       on-profile: dev 
  56.  
  57. env: '測試環境' 

application-online.yml

  1. spring: 
  2.   config: 
  3.     activate: 
  4.       on-profile: pre 
  5.  
  6. env: '預發環境' 

application-online.yml

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

3.驗證效果

當我的主配置文件為如下時,即指定環境為dev測試環境

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

http://localhost:8080/env

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

而當我的主配置文件是如下時,即加載的是online線上環境

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

http://localhost:8080/env

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

其他

部署應用的時候,我們只需要覆蓋application.yml即可,就可以在測試環境、預發環境、線上環境等環境,加載他們對應的配置。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2012-08-29 09:51:01

iPhone蘋果專利

2010-03-04 15:06:39

Python CGI環

2009-12-15 16:41:17

路由器設置

2021-09-13 10:31:02

Java原子

2009-12-17 16:47:01

Linux桌面環境

2024-04-23 14:13:38

開發配置文件

2009-07-01 10:12:40

JSP環境配置JSP引擎

2020-07-15 10:00:45

springbootbeanJava

2010-11-25 16:48:20

HadoopHbase

2009-06-29 15:06:23

環境變量配置Java

2011-06-20 14:00:26

Qt qmake

2010-07-21 15:07:30

telnet服務

2017-06-27 05:08:46

存儲虛擬化服務器

2010-03-12 17:23:38

Python腳本

2010-03-30 15:54:27

Oracle date

2022-03-23 07:31:34

SpringBoot加載配置

2009-12-14 10:08:31

路由器配置

2011-03-17 17:59:33

云環境中開發

2022-07-07 09:27:26

Syslinux加載程序

2011-02-25 10:04:49

proftpChroot
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美视频网 | 欧美日本久久 | 91精品国产综合久久久动漫日韩 | 久久久精品一区 | 成人网址在线观看 | 久久久久久影院 | www.天堂av.com | 特一级黄色毛片 | 日韩精品一区二区三区中文在线 | 日韩精品在线网站 | 亚洲天堂精品一区 | 国产精品视频久久久 | 欧美日韩视频在线第一区 | 亚洲一区免费视频 | 精品一区二区久久久久久久网站 | 欧州一区二区三区 | 精品自拍视频在线观看 | 亚洲精品片 | 狠狠亚洲| 精品美女在线观看 | 欧美理论片在线 | 国产一区二区 | 亚洲视频一区在线播放 | 国产91黄色 | 国产精品久久 | xxxxx黄色片 欧美一区免费 | 日本一卡精品视频免费 | 欧美一级淫片免费视频黄 | 高清色视频 | 精品视频一区二区三区 | 人人性人人性碰国产 | 国产探花 | 中文字幕精品一区 | 日韩欧美在线不卡 | 九九视频在线观看视频6 | 久久久黄色 | 国产一区二区在线播放 | 色又黄又爽网站www久久 | 欧美色影院 | 欧美精品一区二区三区在线 | 欧美一区二区网站 |