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

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

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

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

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

spring boot允許你通過命名約定按照一定的格式(application-{profile}.properties)來定義多個(gè)配置文件,然后通過在application.properyies通過spring.profiles.active來具體激活一個(gè)或者多個(gè)配置文件,如果沒有沒有指定任何profile的配置文件的話,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è)文件中都分別寫上變量cusvar=cus1和cusvar=cus2

這里寫圖片描述

我們在application.properyies也寫上,并把profile切換到application-cus1.properties的配置文件

cusvar=cus3
spring.profiles.active=cus1

可以通過這樣子來測試

@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不同,打印出來的結(jié)果也不一樣。

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

public interface DBConnector {
    public void configure();    
}

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

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

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

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來激活一個(gè)或者多個(gè)profile之外,還可以用spring.profiles.include來疊加profile

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

spring boot配置之Profile的使用

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

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

1. 多profile文件形式

  • 格式:application-{profile}.properties
  • 例如常見的: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)先級

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

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

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

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

在這里插入圖片描述

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

相關(guān)文章

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

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

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

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

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

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

    PDF是一種用于顯示和打印文檔的文件格式,它非常廣泛地應(yīng)用于電子書籍、報(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類或Math.random方法)

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

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

    JMeter配置元件詳解

    JMeter提供了豐富的配置元件,常用的包括參數(shù)化配置元件、HTTP請求默認(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)使用案例,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(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í)體類和表映射問題(推薦)

    Mybatis實(shí)體類和表映射問題(推薦)

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

    maven打包如何指定jdk的版本

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

最新評論

金溪县| 吉水县| 纳雍县| 芜湖市| 特克斯县| 页游| 诸暨市| 方城县| 盈江县| 恭城| 元江| 彩票| 白玉县| 临洮县| 苏尼特右旗| 崇义县| 南安市| 巴林右旗| 平和县| 吉隆县| 那坡县| 万载县| 北辰区| 隆子县| 渑池县| 江山市| 沽源县| 和静县| 饶平县| 云和县| 山阳县| 始兴县| 莱州市| 尚志市| 南华县| 五家渠市| 北流市| 新营市| 西乡县| 蒲江县| 中方县|