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

SpringBoot中根據(jù)環(huán)境加載不同的配置的方案

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

[[413405]]

前言

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

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

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

方案

我寫(xiě)了個(gè)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是一個(gè)主配置,即無(wú)論如何,都會(huì)被加載的,類(lèi)似SSM時(shí)代的spring-config.xml。里邊的邏輯,就一個(gè)active,就是指定配置環(huán)境:

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

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

  1. SpringBoot中根據(jù)環(huán)境加載不同的配置的方案 
  2. 原創(chuàng)2021-07-26 17:31·IT小村 
  3. 前言 
  4.  
  5. 我們的一個(gè)應(yīng)用,開(kāi)發(fā)上線,需要一定的流程,比如需要先在測(cè)試環(huán)境中進(jìn)行測(cè)試,測(cè)試環(huán)境中有它的一整套配置,如MySQL、Redis、MQ等。 
  6.  
  7. 測(cè)試環(huán)境測(cè)試完畢,我們會(huì)在預(yù)發(fā)環(huán)境再度測(cè)試,最后再上線,即線上環(huán)境。每個(gè)環(huán)境都有他們自己獨(dú)有的一套配置,而代碼邏輯都是一樣,就是環(huán)境配置不一樣而已。 
  8.  
  9. 如何低耦合地分離各個(gè)環(huán)境的配置,就是我們所追求的,下面闡述下SpringBoot中的方案。 
  10.  
  11. 方案 
  12.  
  13. 我寫(xiě)了個(gè)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是一個(gè)主配置,即無(wú)論如何,都會(huì)被加載的,類(lèi)似SSM時(shí)代的spring-config.xml。里邊的邏輯,就一個(gè)active,就是指定配置環(huán)境: 
  44.  
  45. spring: 
  46.   profiles: 
  47.     active: dev 
  48. 對(duì)應(yīng)其他其他環(huán)境的配置,它們有2個(gè)點(diǎn),一個(gè)是環(huán)境名稱(chēng)on-profile,一個(gè)對(duì)應(yīng)環(huán)境下的值env。 
  49.  
  50. application-dev.yml 
  51.  
  52. spring: 
  53.   config: 
  54.     activate: 
  55.       on-profile: dev 
  56.  
  57. env: '測(cè)試環(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.驗(yàn)證效果

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

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

http://localhost:8080/env

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

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

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

http://localhost:8080/env

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

其他

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

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2012-08-29 09:51:01

iPhone蘋(píng)果專(zhuān)利

2010-03-04 15:06:39

Python CGI環(huán)

2009-12-15 16:41:17

路由器設(shè)置

2009-12-17 16:47:01

Linux桌面環(huán)境

2021-09-13 10:31:02

Java原子

2024-04-23 14:13:38

開(kāi)發(fā)配置文件

2009-07-01 10:12:40

JSP環(huán)境配置JSP引擎

2020-07-15 10:00:45

springbootbeanJava

2010-11-25 16:48:20

HadoopHbase

2009-06-29 15:06:23

環(huán)境變量配置Java

2011-06-20 14:00:26

Qt qmake

2010-07-21 15:07:30

telnet服務(wù)

2017-06-27 05:08:46

存儲(chǔ)虛擬化服務(wù)器

2010-03-12 17:23:38

Python腳本

2022-03-23 07:31:34

SpringBoot加載配置

2010-03-30 15:54:27

Oracle date

2009-12-14 10:08:31

路由器配置

2011-03-17 17:59:33

云環(huán)境中開(kāi)發(fā)

2022-07-07 09:27:26

Syslinux加載程序

2011-02-25 10:04:49

proftpChroot
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产欧美日韩精品一区 | 精品日韩欧美一区二区 | 精品亚洲一区二区 | 国产精品99久久久久久久久久久久 | 亚洲巨乳自拍在线视频 | 国产一级在线观看 | 青青久草 | 国产免费一区二区三区免费视频 | 亚洲一区二区三区久久久 | 国产精品一区二区在线 | 精品久久九 | 久久综合久| 久久y| 午夜精品久久久久久久久久久久久 | 日韩一区在线观看视频 | 视频一区二区在线观看 | 黄网免费 | 国产精品九九九 | 97国产在线视频 | 91精品国产高清一区二区三区 | 国产欧美精品在线 | 亚洲视频在线免费观看 | 少妇一级淫片免费放播放 | 性色av香蕉一区二区 | 久久午夜精品 | 99精品国产一区二区三区 | 久久国产美女视频 | 日韩在线精品 | 欧美精品一区在线 | 亚洲在线免费观看 | 欧美一区二区三区视频在线播放 | 国产乱码久久久久久 | 国产精品成人一区二区三区夜夜夜 | 欧美一区二区在线免费观看 | 视频在线亚洲 | 欧美日韩在线视频一区 | 日韩欧美中文在线 | 亚洲毛片在线观看 | 91精品国产一区二区三区 | 一区二区三区视频在线免费观看 | 午夜视频一区二区 |