最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring boot 使用profile來(lái)分區(qū)配置的操作

 更新時(shí)間:2021年07月02日 11:54:56   作者:node2017  
這篇文章主要介紹了spring boot使用profile來(lái)分區(qū)配置的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

spring boot 使用profile來(lái)分區(qū)配置

很多時(shí)候,我們項(xiàng)目在開(kāi)發(fā)環(huán)境和生成環(huán)境的環(huán)境配置是不一樣的,例如,數(shù)據(jù)庫(kù)配置,在開(kāi)發(fā)的時(shí)候,我們一般用測(cè)試數(shù)據(jù)庫(kù),而在生產(chǎn)環(huán)境的時(shí)候,我們是用正式的數(shù)據(jù),這時(shí)候,我們可以利用profile在不同的環(huán)境下配置用不同的配置文件或者不同的配置

spring boot允許你通過(guò)命名約定按照一定的格式(application-{profile}.properties)來(lái)定義多個(gè)配置文件,然后通過(guò)在application.properyies通過(guò)spring.profiles.active來(lái)具體激活一個(gè)或者多個(gè)配置文件,如果沒(méi)有沒(méi)有指定任何profile的配置文件的話(huà),spring boot默認(rèn)會(huì)啟動(dòng)application-default.properties。

profile的配置文件可以按照application.properyies的放置位置一樣,放于以下四個(gè)位置,

  • 當(dāng)前目錄的 “/config”的子目錄下
  • 當(dāng)前目錄下
  • classpath根目錄的“/config”包下
  • classpath的根目錄下

在這里我們就定義倆個(gè)profile文件,application-cus1.properties和application-cus2.properties,并在倆個(gè)文件中都分別寫(xiě)上變量cusvar=cus1和cusvar=cus2

這里寫(xiě)圖片描述

我們?cè)赼pplication.properyies也寫(xiě)上,并把profile切換到application-cus1.properties的配置文件

cusvar=cus3
spring.profiles.active=cus1

可以通過(guò)這樣子來(lái)測(cè)試

@RestController
@RequestMapping("/task")
public class TaskController {
    @RequestMapping(value = {"/",""})
    public String hellTask(@Value("${cusvar}")String cusvar ){
        return "hello task !! myage is " + cusvar;
    }
}

在這里可以看到spring.profiles.active激活的profile不同,打印出來(lái)的結(jié)果也不一樣。

除了可以用profile的配置文件來(lái)分區(qū)配置我們的環(huán)境變量,在代碼里,我們還可以直接用@Profile注解來(lái)進(jìn)行配置,例如數(shù)據(jù)庫(kù)配置,這里我們先定義一個(gè)接口

public interface DBConnector {
    public void configure();    
}

分別定義倆個(gè)實(shí)現(xiàn)類(lèi)來(lái)實(shí)現(xiàn)它

/**
  * 測(cè)試數(shù)據(jù)庫(kù)
  */
@Component
@Profile("testdb")
public class TestDBConnector implements DBConnector {
    @Override
    public void configure() {
        System.out.println("testdb");
    }
}
/**
 * 生產(chǎn)數(shù)據(jù)庫(kù)
 */
@Component
@Profile("devdb")
public class DevDBConnector implements DBConnector {
    @Override
    public void configure() {
        System.out.println("devdb");
    }
}

通過(guò)在配置文件激活具體使用哪個(gè)實(shí)現(xiàn)類(lèi)

spring.profiles.active=testdb

然后就可以這么用了

@RestController
@RequestMapping("/task")
public class TaskController {
    @Autowired DBConnector connector ;
    @RequestMapping(value = {"/",""})
    public String hellTask(){
        connector.configure(); //最終打印testdb     
        return "hello task !! myage is " + myage;
    }
}

除了spring.profiles.active來(lái)激活一個(gè)或者多個(gè)profile之外,還可以用spring.profiles.include來(lái)疊加profile

spring.profiles: testdb
spring.profiles.include: proddb,prodmq

spring boot配置之Profile的使用

profile是Spring對(duì)不同環(huán)境提供不同配置功能的支持,可以通過(guò)激活

指定參數(shù)等方式快速切換環(huán)境

1. 多profile文件形式

  • 格式:application-{profile}.properties
  • 例如常見(jiàn)的:application-dev.properties, application-uat.properties, application-prod.properties

2. 多profile文檔塊模式

spring:
  profiles: dev
server:
  port: 8081
---
spring:
  profiles: uat
server:
  port: 8082
---
spring:
  profiles: prod
server:
  port: 8083

在這里插入圖片描述

在這里插入圖片描述

3. 激活方式

1.在默認(rèn)配置文件application.properties中指定 spring.profiles.active=dev

在這里插入圖片描述

application.properties文件
#激活application-dev.properties中的配置
spring.profiles.active=dev
application-dev.properties文件
server.port=8081

2.命令行

java -jar ch02-springboot-config-profile-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

3.虛擬機(jī)參數(shù) 常用

在"VM options"中添加-Dspring.profiles.active=dev

在這里插入圖片描述

在這里插入圖片描述

4.“Program atguments”

在“Program atguments”中添加–spring.profiles.active=dev

在這里插入圖片描述

4. 不同位置的配置文件優(yōu)先級(jí)

SpringBoot啟動(dòng)會(huì)掃描以下位置的application.properties/application.yml文件作為SpringBoot的默認(rèn)配置文件

  • file:./config/
  • file:./
  • classpath:/config/
  • classpath:/

以上是按照優(yōu)先級(jí)從高到低的順序,所有問(wèn)題的文件都會(huì)被加載。如果配置文件中存在相同配置,則高優(yōu)先級(jí)配置內(nèi)容會(huì)覆蓋低優(yōu)先級(jí)配置內(nèi)容。SpringBoot會(huì)從這四個(gè)位置全部加載主配置文件生成一個(gè)互補(bǔ)配置的文件。還可通過(guò)spring.congif.location改變默認(rèn)的配置文件位置

以下圖中的優(yōu)先級(jí)為1–>2–>3–>4, 不過(guò)1和2不會(huì)被打到包里

在這里插入圖片描述

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解析HashMap中的put方法執(zhí)行流程

    解析HashMap中的put方法執(zhí)行流程

    在Java集合中,HashMap的重要性不言而喻,作為一種存儲(chǔ)鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),它在日常開(kāi)發(fā)中有著非常多的應(yīng)用場(chǎng)景,也是面試中的高頻考點(diǎn),本篇文章就來(lái)分析一下HashMap集合中的put方法
    2021-12-12
  • java發(fā)起http請(qǐng)求調(diào)用post與get接口的方法實(shí)例

    java發(fā)起http請(qǐng)求調(diào)用post與get接口的方法實(shí)例

    在實(shí)際開(kāi)發(fā)過(guò)程中,我們經(jīng)常需要調(diào)用對(duì)方提供的接口或測(cè)試自己寫(xiě)的接口是否合適,下面這篇文章主要給大家介紹了關(guān)于java發(fā)起http請(qǐng)求調(diào)用post與get接口的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 一文詳解如何使用Java分割PDF文件

    一文詳解如何使用Java分割PDF文件

    PDF是一種用于顯示和打印文檔的文件格式,它非常廣泛地應(yīng)用于電子書(shū)籍、報(bào)告、合同等文件的傳遞和共享,這篇文章主要給大家介紹了關(guān)于如何使用Java分割PDF文件的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 詳解ssh框架原理及流程

    詳解ssh框架原理及流程

    在本文中小編給大家整理的是關(guān)于ssh框架原理及流程的相關(guān)知識(shí)點(diǎn)內(nèi)容,有此需要的朋友們可以學(xué)習(xí)下。
    2019-07-07
  • Java隨機(jī)值設(shè)置(java.util.Random類(lèi)或Math.random方法)

    Java隨機(jī)值設(shè)置(java.util.Random類(lèi)或Math.random方法)

    在編程中有時(shí)我們需要生成一些隨機(jī)的字符串作為授權(quán)碼、驗(yàn)證碼等,以確保數(shù)據(jù)的安全性和唯一性,這篇文章主要給大家介紹了關(guān)于Java隨機(jī)值設(shè)置的相關(guān)資料,主要用的是java.util.Random類(lèi)或Math.random()方法,需要的朋友可以參考下
    2024-08-08
  • JMeter配置元件詳解

    JMeter配置元件詳解

    JMeter提供了豐富的配置元件,常用的包括參數(shù)化配置元件、HTTP請(qǐng)求默認(rèn)值、HTTP信息頭管理器、計(jì)數(shù)器等,本文就詳細(xì)的介紹一下這些元件的使用,感興趣的可以了解一下
    2021-12-12
  • Java Stream map, Collectors(toMap, toList, toSet, groupingBy, collectingAndThen)使用案例

    Java Stream map, Collectors(toMap, toLis

    這篇文章主要介紹了Java Stream map, Collectors(toMap, toList, toSet, groupingBy, collectingAndThen)使用案例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • SpringBoot集成極光推送的實(shí)現(xiàn)代碼

    SpringBoot集成極光推送的實(shí)現(xiàn)代碼

    工作中經(jīng)常會(huì)遇到服務(wù)器向App推送消息的需求,一般企業(yè)中選擇用極光推送的比較多,本文就介紹了SpringBoot集成極光推送的實(shí)現(xiàn)代碼,感興趣的可以了解一下
    2023-08-08
  • Mybatis實(shí)體類(lèi)和表映射問(wèn)題(推薦)

    Mybatis實(shí)體類(lèi)和表映射問(wèn)題(推薦)

    在項(xiàng)目開(kāi)發(fā)中我們經(jīng)常會(huì)遇到表中的字段名和表對(duì)應(yīng)實(shí)體類(lèi)的屬性名稱(chēng)不一定都是完全相同的。下面小編給大家介紹下這種情況下如何解決字段名與實(shí)體類(lèi)屬性名不相同的沖突問(wèn)題。下面小編給大家?guī)?lái)了Mybatis實(shí)體類(lèi)和表映射的解決方法,小伙伴們一起學(xué)習(xí)吧
    2016-09-09
  • maven打包如何指定jdk的版本

    maven打包如何指定jdk的版本

    這篇文章主要介紹了maven打包如何指定jdk的版本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評(píng)論

长顺县| 东海县| 家居| 辰溪县| 比如县| 肇庆市| 乌拉特前旗| 彰化市| 育儿| 织金县| 临清市| 玛沁县| 韶关市| 固原市| 淮阳县| 漳浦县| 西畴县| 博野县| 富川| 砚山县| 五台县| 天峻县| 木里| 阿瓦提县| 鄂托克旗| 哈巴河县| 尼玛县| 永嘉县| 尤溪县| 合江县| 探索| 兴安盟| 靖边县| 西宁市| 台北市| 兰溪市| 汝城县| 如东县| 甘南县| 庆阳市| 陆川县|