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

Spring Cloud Alibaba Nacos Config進(jìn)階使用

 更新時(shí)間:2021年08月20日 17:04:34   作者:gblfy  
這篇文章主要介紹了Spring Cloud Alibaba Nacos Config進(jìn)階使用,文中使用企業(yè)案例,圖文并茂的展示了Nacos Config的使用,感興趣的小伙伴可以看一看

一、SpringBoot 使用 Nacos Config 實(shí)現(xiàn)多環(huán)境切換

1. 現(xiàn)象

在日常開(kāi)發(fā)過(guò)程中,對(duì)于同一個(gè)服務(wù)或者項(xiàng)目工程在不同的環(huán)境所需要的配置是不同的。如訪問(wèn)數(shù)據(jù)庫(kù)、redis或者M(jìn)Q其他中間件,往往需要進(jìn)行環(huán)境隔離,如果每次部署都需要去修改配置文件的話,是十分不方面的。在微服務(wù)場(chǎng)景下,這個(gè)問(wèn)題尤為突出,因?yàn)榇a工程的數(shù)量是傳統(tǒng)單項(xiàng)目的幾十倍。需要建筑一些組件,在不修改配置穩(wěn)健的前提下動(dòng)態(tài)的切換運(yùn)行環(huán)境。Nacos Config提供了類似的解決方案。

在這里插入圖片描述

2. 引入依賴

在pom文件中添加Nacos Config的依賴包,注意版本

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--服務(wù)注冊(cè)發(fā)現(xiàn)-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <!--spring-cloud-alibaba 版本控制-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

3. 添加bootstrap.yaml配置文件

spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服務(wù)地址
      config:
        file-extension: yaml # 表示支持?jǐn)U展的文件名
  application:
    name: nacos-config # 表示當(dāng)前微服務(wù)需要向配置中心索要nacos-config的配置
  profiles:
    active: prod # 表示我需要向配置中心索要生產(chǎn)環(huán)境的配置

4. 配置對(duì)應(yīng)關(guān)系圖

在Nacos Config 配置管理中新增配置如圖以及其對(duì)應(yīng)關(guān)系如下:

在這里插入圖片描述

5. 文件格式簡(jiǎn)述

索要文件的格式為${application.name}-spring。profiles.active.{file-extension}
體現(xiàn)在nacos中,對(duì)應(yīng)尚曼的格式Data id得知應(yīng)該是nacos-config-prod.yaml

6. 啟動(dòng)nacos

官網(wǎng):
https://nacos.io/zh-cn/docs/quick-start.html

# 啟動(dòng)命令(standalone代表著單機(jī)模式運(yùn)行,非集群模式):
# linux
sh startup.sh -m standalone

# Windows
startup.cmd -m standalone

在這里插入圖片描述

http://localhost:8848/nacos/
賬號(hào)/密碼:nacos/nacos

在這里插入圖片描述

7. 添加生產(chǎn)配置

標(biāo)簽 說(shuō)明
Data ID nacos-config-prod.yaml
Group DEFAULT_GROUP 默認(rèn),可以自定義
描述 簡(jiǎn)述生產(chǎn)環(huán)境配置
配置格式 yaml 文件擴(kuò)展名選擇
配置內(nèi)容 nacosProd: Production environment configuration 和配置yml文件格式語(yǔ)法一樣

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

8. 添加測(cè)試controller

package com.gblfy.alibab.nacosconfig.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope
public class NacosConfigController {


    @Value("${nacosProd}")
    private String nacosProd;

    @GetMapping("/nacosProd")
    public String getNacosProd() {
        return nacosProd;
    }

}

9. 啟動(dòng)Springboot工程并觀察到如下日志則為成功

在這里插入圖片描述

10. 瀏覽器驗(yàn)證

打開(kāi)瀏覽器訪問(wèn)http://localhost:8080/nacosProd驗(yàn)證測(cè)試結(jié)果結(jié)果如圖:

在這里插入圖片描述

11. 調(diào)整激活環(huán)境

修改bootstrap.yaml文件中激活環(huán)境調(diào)整為test環(huán)境spring.profiles.active.test

spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服務(wù)地址
      config:
        file-extension: yaml # 表示支持?jǐn)U展的文件名
  application:
    name: nacos-config # 表示當(dāng)前微服務(wù)需要向配置中心索要nacos-config的配置
  profiles:
    active: test  # 表示我需要向配置中心索要生產(chǎn)環(huán)境的配置

12. 新建test環(huán)境配置

在nacos中新建data_id為nacos-config-test.yaml,并添加相同的配置參數(shù),把環(huán)境參數(shù)的內(nèi)容調(diào)整為test測(cè)試環(huán)境的

在這里插入圖片描述

13. test配置關(guān)系圖

在這里插入圖片描述

14. 測(cè)試方法

添加test測(cè)試環(huán)境方法,把剛才生產(chǎn)的方法注釋掉,因?yàn)樵蹅儸F(xiàn)在激活的是test測(cè)試環(huán)境的配置

 //    @Value("${nacosProd}")
//    private String nacosProd;
//
//    @GetMapping("/nacosProd")
//    public String getNacosProd() {
//        return nacosProd;
//    }

    @Value("${nacosTest}")
    private String nacosTest;

    @GetMapping("/nacosTest")
    public String getNacosTest() {
        return nacosTest;
    }

15. 重啟springboot服務(wù),監(jiān)控控制臺(tái)輸出

在這里插入圖片描述

16. 瀏覽器驗(yàn)證

打開(kāi)瀏覽器訪問(wèn)http://localhost:8080/nacosTest驗(yàn)證測(cè)試結(jié)果結(jié)果如圖:

在這里插入圖片描述

17. 配置修改實(shí)時(shí)生效

在修改nacos中修改配置實(shí)時(shí)生效測(cè)試
修改前配置:

在這里插入圖片描述

修改后配置:

在這里插入圖片描述

發(fā)布規(guī)則

在這里插入圖片描述

不停止項(xiàng)目服務(wù),打開(kāi)瀏覽器訪問(wèn)http://localhost:8080/nacosTest驗(yàn)證測(cè)試結(jié)果結(jié)果如圖:

在這里插入圖片描述

其他環(huán)境同上這里就不一一驗(yàn)證了。

18. 不同環(huán)境配置動(dòng)態(tài)切換如何實(shí)現(xiàn)?

這里演示修改配置文件,到正式環(huán)境,激活那個(gè)環(huán)境配置是在命令腳本中配置好的
會(huì)采用下面這種方式激活環(huán)境配置,這個(gè)命令配置環(huán)境的優(yōu)先級(jí)比項(xiàng)目中的配置文件中的優(yōu)先級(jí)高

java -jar xxx.jar -Dspring.profiles.active=test

二、如何解決不同環(huán)境相同配置的問(wèn)題

在這里插入圖片描述

2.1. 現(xiàn)象

在實(shí)際的開(kāi)發(fā)過(guò)程中,我們的工程項(xiàng)目所用到的配置參數(shù)大多數(shù)并不需要根據(jù)不同的環(huán)境進(jìn)行區(qū)分,生產(chǎn)、測(cè)試、開(kāi)發(fā)環(huán)境所用到的參數(shù)值是相同的。如何解決同一服務(wù)在多環(huán)境中,引用相同配置的問(wèn)題呢?Nacos Config也提供了相應(yīng)的解決方案。

在這里插入圖片描述

2.2. 添加配置

在Nacos Config中添加配置,data_id為nacos-config.yaml,如圖所示:

在這里插入圖片描述

2.3. 增加測(cè)試方法

在NacosConfigController類中添加讀取項(xiàng)目中共有相同配置的方法進(jìn)行測(cè)試

//    @Value("${nacosProd}")
//    private String nacosProd;
//
//    @GetMapping("/nacosProd")
//    public String getNacosProd() {
//        return nacosProd;
//    }

    @Value("${nacosTest}")
    private String nacosTest;

    @GetMapping("/nacosTest")
    public String getNacosTest() {
        return nacosTest;
    }
    @Value("${nacosCommon}")
    private String nacosCommon;

    @GetMapping("/nacosCommon")
    public String getNacosCommon() {
        return nacosCommon;
    }

2.4. 重新啟動(dòng)項(xiàng)目,觀察控制臺(tái)

在這里插入圖片描述

2.5. 瀏覽器驗(yàn)證

打開(kāi)瀏覽器訪問(wèn)http://localhost:8080/nacosTest驗(yàn)證測(cè)試結(jié)果結(jié)果如圖:

在這里插入圖片描述

打開(kāi)瀏覽器訪問(wèn)http://localhost:8080/nacosCommon驗(yàn)證測(cè)試結(jié)果結(jié)果如圖:

在這里插入圖片描述

從上面測(cè)試可以看出,訪問(wèn)test環(huán)境獨(dú)有的配置可以正常訪問(wèn)。訪問(wèn)項(xiàng)目中共有相同的配置也正常。
此時(shí),我們已經(jīng)在nacos中配置了3個(gè)配置文件,nacos-config-prod.yaml、nacos-config-test.yaml和nacos-config.yaml
在這里插入圖片描述

三、如果同一個(gè)配置項(xiàng)在三個(gè)配置文件中都存在且值不同,最終項(xiàng)目讀取是哪個(gè)呢?

3.1. 驗(yàn)證思路

在這里插入圖片描述

驗(yàn)證這個(gè)其實(shí)很簡(jiǎn)單,只需要在環(huán)境獨(dú)有的配置中配置共有相同配置文件中相同的配置標(biāo)簽讓他值不一樣,瀏覽器訪問(wèn)不就知道了,對(duì)吧?
這樣,演示在nacos-config-test.yaml文件中配置nacos-config.yaml文件中nacosCommon標(biāo)簽,給他賦予不同的值進(jìn)行測(cè)試。

3.2. 添加相同配置

nacos-config.yaml文件中原配置:

在這里插入圖片描述

nacos-config-test.yaml文件中配置nacosCommon標(biāo)簽值為
添加相同配置
在測(cè)試配置中添加與公用配置一樣的標(biāo)簽屬性值不同,觀察誰(shuí)的配置生效即可

nacosTest: Test environment configuration v2
nacosCommon: Common Environment Configuration 測(cè)試配置文件中,配置相同屬性值不同的測(cè)試案例

在這里插入圖片描述

規(guī)則發(fā)布

在這里插入圖片描述

3.3. 瀏覽器驗(yàn)證

打開(kāi)瀏覽器訪問(wèn)http://localhost:8080/nacosCommon驗(yàn)證測(cè)試結(jié)果結(jié)果如圖:

在這里插入圖片描述

實(shí)際讀取的配置信息是從nacos-config-test.yaml文件中讀取的。
結(jié)論:如果配置了spring.profiles.active,則優(yōu)先獲取nacos-config-{spring.profiles.active}.yaml中的值。

四、不同微服務(wù)之間相同配置如何共享

在這里插入圖片描述

在這里插入圖片描述

4.1. 解決方案簡(jiǎn)述

像這種共有中間件的配置信息企業(yè)會(huì)采用單獨(dú)的配置文件來(lái)維護(hù),Nacos Config為我們提供了二種配置方式來(lái)解決此類場(chǎng)景的問(wèn)題,分別是extension-configs和shard-configs配置方式。

4.2. 通過(guò)shard-configs配置方式

在nacos中新建redis.yaml,添加配置信息,reidsip:127.0.0.1,然后,配置信息發(fā)布生效

在這里插入圖片描述

修改項(xiàng)目的bootstrap.yaml的配置文件,添加配置spring.cloud.nacos.config.shared-configs[0]

spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服務(wù)地址
      config:
        file-extension: yaml # 表示支持?jǐn)U展的文件名
        shared-configs[0]:
          data_id: redis.yaml
          refresh: true # 默認(rèn)是false 如果需要支持自動(dòng)刷新,需要配置true,搭配@RefreshScope實(shí)現(xiàn)動(dòng)態(tài)刷新
          #group: # 可以不寫 默認(rèn)DEFAULT_GROUP
  application:
    name: nacos-config # 表示當(dāng)前微服務(wù)需要向配置中心索要nacos-config的配置
  profiles:
    active: test  # 表示我需要向配置中心索要生產(chǎn)環(huán)境的配置

在這里插入圖片描述

在這里插入圖片描述

添加測(cè)試方法

 @Value("${redisip}")
    private String redisip;

    @GetMapping("/redisip")
    public String getredisip() {
        return redisip;
    }

打開(kāi)瀏覽器訪問(wèn)http://localhost:8080/redisip驗(yàn)證測(cè)試結(jié)果結(jié)果如圖:

http://localhost:8080/redisip

在這里插入圖片描述

4.3. 如何添加多個(gè)shared-configs配置呢?

在nacos中新建mq.yaml,添加配置信息mqip: 127.0.0.2

在這里插入圖片描述

修改項(xiàng)目的bootstrap.yaml問(wèn)阿金,并添加shared-configs[1]:配置,具體配置線如下:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服務(wù)地址
      config:
        file-extension: yaml # 表示支持?jǐn)U展的文件名
        shared-configs[0]:
          data_id: redis.yaml
          refresh: true # 默認(rèn)是false 如果需要支持自動(dòng)刷新,需要配置true,搭配@RefreshScope實(shí)現(xiàn)動(dòng)態(tài)刷新
          #group: # 可以不寫 默認(rèn)DEFAULT_GROUP
        shared-configs[1]:
          data_id: mq.yaml
          refresh: true # 默認(rèn)是false 如果需要支持自動(dòng)刷新,需要配置true,搭配@RefreshScope實(shí)現(xiàn)動(dòng)態(tài)刷新
          #group: # 可以不寫 默認(rèn)DEFAULT_GROUP
  application:
    name: nacos-config # 表示當(dāng)前微服務(wù)需要向配置中心索要nacos-config的配置
  profiles:
    active: test  # 表示我需要向配置中心索要生產(chǎn)環(huán)境的配置

新增一個(gè)獲取mq信息的url以及方法

package com.gblfy.alibab.nacosconfig.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope
public class NacosConfigController {


//    @Value("${nacosProd}")
//    private String nacosProd;
//
//    @GetMapping("/nacosProd")
//    public String getNacosProd() {
//        return nacosProd;
//    }

    @Value("${nacosTest}")
    private String nacosTest;

    @GetMapping("/nacosTest")
    public String getNacosTest() {
        return nacosTest;
    }
    @Value("${nacosCommon}")
    private String nacosCommon;

    @GetMapping("/nacosCommon")
    public String getNacosCommon() {
        return nacosCommon;
    }
    @Value("${redisip}")
    private String redisip;

    @GetMapping("/redisip")
    public String getredisip() {
        return redisip;
    }
    @Value("${mqip}")
    private String mqip;

    @GetMapping("/mqip")
    public String getmqip() {
        return mqip;
    }

}

打開(kāi)瀏覽器訪問(wèn)http://localhost:8080/mqip驗(yàn)證測(cè)試結(jié)果結(jié)果如圖:

在這里插入圖片描述

4.4. 通過(guò)extension-configs方式

修改bootstrap.yaml文件,刪除shared-configs相關(guān)配置,增加extension-configs[0]和extension-configs[1]的配置如下:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服務(wù)地址
      config:
        file-extension: yaml # 表示支持?jǐn)U展的文件名
        extension-configs[0]: # shared-configs是一個(gè)列表 List<Config> sharedConfigs
          data_id: redis.yaml
          refresh: true # 默認(rèn)是false 如果需要支持自動(dòng)刷新,需要配置true,搭配@RefreshScope實(shí)現(xiàn)動(dòng)態(tài)刷新
        extension-configs[1]: # shared-configs是一個(gè)列表 List<Config> sharedConfigs
          data_id: mq.yaml
          refresh: true # 默認(rèn)是false 如果需要支持自動(dòng)刷新,需要配置true,搭配@RefreshScope實(shí)現(xiàn)動(dòng)態(tài)刷新
          #group: # 可以不寫 默認(rèn)DEFAULT_GROUP
  application:
    name: nacos-config # 表示當(dāng)前微服務(wù)需要向配置中心索要nacos-config的配置
  profiles:
    active: test  # 表示我需要向配置中心索要生產(chǎn)環(huán)境的配置

重新啟動(dòng)項(xiàng)目,分別訪問(wèn)http://localhost:8080/redisiphttp://localhost:8080/mqip驗(yàn)證是否可以正常讀取redis.yaml和mq.yaml的配置信息

在這里插入圖片描述

在這里插入圖片描述

4.5. 配置實(shí)時(shí)刷新測(cè)試驗(yàn)證

在nacos中修改redis.yaml和mq.yaml的信息,不重啟項(xiàng)目,直接訪問(wèn)瀏覽器,驗(yàn)證配置是否生效
redis.yaml原配置:

在這里插入圖片描述

mq.yaml修改后配置:

在這里插入圖片描述

mq.yaml原配置:

在這里插入圖片描述

mq.yaml修改后配置:

在這里插入圖片描述

訪問(wèn)http://localhost:8080/redisiphttp://localhost:8080/mqip驗(yàn)證

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

五、多個(gè)shard-configs的文件中存在相同的配置

5.1. 思考1

如果多個(gè)shard-configs的文件中存在相同的配置,最終會(huì)以那個(gè)配置文件中的值為準(zhǔn)?

5.2. 分析驗(yàn)證思路

這樣場(chǎng)景

例如:在redis.yaml和mq.yaml配置文件中有一個(gè)相同的配置屬性但是值不一樣,然后在項(xiàng)目中存在多個(gè)shard-configs的文件,到底優(yōu)先獲取誰(shuí)的配置問(wèn)價(jià)心中的信息呢?對(duì)吧

5.3. 驗(yàn)證流程

  • 1.在nacos上在redis.yaml和mq.yaml配置文件中都配置一個(gè)屬性為port的屬性,redis.yaml文件中配置6379,和mq.yaml配置文件中port配置5672
  • 2.在項(xiàng)目中的bootstrap.yaml中配置多個(gè)shard-configs
  • 3.在測(cè)試類中添加測(cè)試方法
  • 4.瀏覽器驗(yàn)證
  • 5.得出結(jié)論

5.4. 流程實(shí)戰(zhàn)

  • 1.在nacos上在redis.yaml和mq.yaml配置文件中都配置一個(gè)屬性為port的屬性,redis.yaml文件中配置6379,和mq.yaml配置文件中port配置5672

在這里插入圖片描述

在這里插入圖片描述

  • 2.在項(xiàng)目中的bootstrap.yaml中配置多個(gè)shard-configs
spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服務(wù)地址
      config:
        file-extension: yaml # 表示支持?jǐn)U展的文件名
        extension-configs[0]: # shared-configs是一個(gè)列表 List<Config> sharedConfigs
          data_id: redis.yaml
          refresh: true # 默認(rèn)是false 如果需要支持自動(dòng)刷新,需要配置true,搭配@RefreshScope實(shí)現(xiàn)動(dòng)態(tài)刷新
        extension-configs[1]: # shared-configs是一個(gè)列表 List<Config> sharedConfigs
          data_id: mq.yaml
          refresh: true # 默認(rèn)是false 如果需要支持自動(dòng)刷新,需要配置true,搭配@RefreshScope實(shí)現(xiàn)動(dòng)態(tài)刷新
          #group: # 可以不寫 默認(rèn)DEFAULT_GROUP
  application:
    name: nacos-config # 表示當(dāng)前微服務(wù)需要向配置中心索要nacos-config的配置
  profiles:
    active: test  # 表示我需要向配置中心索要生產(chǎn)環(huán)境的配置
  • 3.在測(cè)試類中添加測(cè)試方法
 @GetMapping("/port")
    public String getport() {
        return port;
    }
  • 4.瀏覽器驗(yàn)證

http://localhost:8080/port

在這里插入圖片描述

  • 5.得出結(jié)論

結(jié)論:會(huì)以數(shù)組最后一個(gè)配置文件內(nèi)容為準(zhǔn)

六、配置文件優(yōu)先級(jí)

6.1. springboot

提示springboot配置文件優(yōu)先級(jí)
(bootstrap.ptoterties > bootstrap.yaml > application.ptoterties > bootstrap.yaml)

6.2. nacos

如果同時(shí)在extension-configs和shard-configs存在相同的配置,最終會(huì)以那個(gè)文件中的值為準(zhǔn)?
總結(jié)下configdemo.yaml、configdemo-test.yaml、和shard-configs、extension-configs讀取優(yōu)先級(jí)

    extension-configs:
      - data-id: shareconfig3.yml
        group: share3_group
        refresh: true
      - data-id: shareconfig3.yml
        group: share4_group
        refresh: true
    shared-configs:
      - data-id: shareconfig1.yml
        refresh: true
      - data-id: shareconfig2.yml
        refresh: true

spring.cloud.nacos.config.extension-configs[n].data-id 其中 n 的值越大,優(yōu)先級(jí)越高,因此會(huì)走group=share4_group的配置。
spring.cloud.nacos.config.shared-configs[n].data-id默認(rèn)跟上面一樣的邏輯。

不同方式配置加載優(yōu)先級(jí)
Spring Cloud Alibaba Nacos Config 目前提供了三種配置能力從 Nacos 拉取相關(guān)的配置。

A: 通過(guò) spring.cloud.nacos.config.shared-configs[n].data-id 支持多個(gè)共享 Data Id 的配置
B: 通過(guò) spring.cloud.nacos.config.extension-configs[n].data-id 的方式支持多個(gè)擴(kuò)展 Data Id 的配置
C: 通過(guò)內(nèi)部相關(guān)規(guī)則(spring.cloud.nacos.config.prefix、spring.cloud.nacos.config.file-extension、spring.cloud.nacos.config.group)自動(dòng)生成相關(guān)的 Data Id 配置

當(dāng)三種方式共同使用時(shí),他們的一個(gè)優(yōu)先級(jí)關(guān)系是:A < B < C

相關(guān)文章

  • java動(dòng)態(tài)目錄樹(shù)的實(shí)現(xiàn)示例

    java動(dòng)態(tài)目錄樹(shù)的實(shí)現(xiàn)示例

    在開(kāi)發(fā)過(guò)程中,常常需要對(duì)目錄結(jié)構(gòu)進(jìn)行操作和展示,本文主要介紹了java動(dòng)態(tài)目錄樹(shù)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • JAVA多線程之中斷機(jī)制stop()、interrupted()、isInterrupted()

    JAVA多線程之中斷機(jī)制stop()、interrupted()、isInterrupted()

    這篇文章主要介紹了JAVA多線程之中斷機(jī)制stop()、interrupted()、isInterrupted()的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • Java實(shí)現(xiàn)文件上傳和下載的方法詳解

    Java實(shí)現(xiàn)文件上傳和下載的方法詳解

    文件上傳,也稱為upload,是指將本地圖片、視頻、音頻等文件上傳到服務(wù)器上。文件下載,也稱為download,是指將文件從服務(wù)器傳輸?shù)奖镜赜?jì)算機(jī)的過(guò)程。本文將用Java實(shí)現(xiàn)文件上傳和下載,需要的可以參考一下
    2022-09-09
  • 關(guān)于TransmittableThreadLocal線程池中線程復(fù)用問(wèn)題的解決方案

    關(guān)于TransmittableThreadLocal線程池中線程復(fù)用問(wèn)題的解決方案

    這篇文章主要介紹了關(guān)于TransmittableThreadLocal線程池中線程復(fù)用問(wèn)題的解決方案,線程池復(fù)用線程,如果子線程執(zhí)行完未移除上下文,則會(huì)導(dǎo)致后續(xù)線程可以取到之前線程設(shè)置的屬性,需要的朋友可以參考下
    2023-11-11
  • Eclipse中改變默認(rèn)的workspace的方法及說(shuō)明詳解

    Eclipse中改變默認(rèn)的workspace的方法及說(shuō)明詳解

    eclipse中改變默然的workspace的方法有哪幾種呢?接下來(lái)腳本之家小編給大家介紹Eclipse中改變默認(rèn)的workspace的方法及說(shuō)明,對(duì)eclipse改變workspace相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-04-04
  • windows10 JDK安裝及配置環(huán)境變量與Eclipse安裝教程

    windows10 JDK安裝及配置環(huán)境變量與Eclipse安裝教程

    這篇文章主要介紹了windows10 JDK安裝及配置環(huán)境變量與Eclipse安裝,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java的封裝類和裝箱拆箱詳解

    Java的封裝類和裝箱拆箱詳解

    Java中存在基礎(chǔ)數(shù)據(jù)類型,但是在某些情況下,我們要對(duì)基礎(chǔ)數(shù)據(jù)類型進(jìn)行對(duì)象的操作,例如,集合中只能存對(duì)象,而不能存在基礎(chǔ)數(shù)據(jù)類型,于是便出現(xiàn)了封裝類,本文將詳細(xì)給大家介紹Java封裝類和裝箱拆箱,需要的朋友可以參考下
    2023-05-05
  • Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡(jiǎn)單使用方法解析

    Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡(jiǎn)單使用方法解析

    這篇文章主要介紹了Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡(jiǎn)單使用方法解析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Hibernate持久化對(duì)象生命周期原理解析

    Hibernate持久化對(duì)象生命周期原理解析

    這篇文章主要介紹了Hibernate持久化對(duì)象生命周期原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 基于spring同名bean覆蓋問(wèn)題的解決

    基于spring同名bean覆蓋問(wèn)題的解決

    這篇文章主要介紹了spring同名bean覆蓋問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論

大化| 西和县| 光泽县| 桐城市| 通道| 进贤县| 桃园市| 东台市| 获嘉县| 阆中市| 鄢陵县| 陵川县| 中方县| 东城区| 平塘县| 吉林省| 绥阳县| 霍林郭勒市| 大竹县| 伊吾县| 根河市| 榆林市| 兰溪市| 富宁县| 阿拉善右旗| 永福县| 宁夏| 巨鹿县| 遂宁市| 大埔区| 县级市| 富宁县| 阜宁县| 邯郸市| 洪洞县| 阜城县| 宁乡县| 福州市| 繁峙县| 罗甸县| 萍乡市|