欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springcloud Alibaba超詳細(xì)使用詳解

 更新時間:2024年08月21日 11:25:23   作者:Lill_bin  
SpringCloudAlibaba是一款優(yōu)秀的微服務(wù)架構(gòu),在市面上有著廣泛的應(yīng)用,這篇文章介紹了SpringCloudAlibaba的一些基本使用,適合初學(xué)者,希望能夠給大家?guī)韼椭?/div>

簡介

Spring Cloud Alibaba是阿里巴巴結(jié)合自身的微服務(wù)實踐開源的微服務(wù)全家桶,我個人覺得其組件比Spring Cloud 中的組件更加好用和強大。并且對的Spring Cloud組件做了很好的兼容。比如在Spirng Cloud Alibaba中依然可以使用Feign作為服務(wù)調(diào)用方式,使用Eureak做服務(wù)注冊發(fā)現(xiàn)等等。

主要功能

1.服務(wù)注冊和發(fā)現(xiàn)(nacos):可以注冊服務(wù),并且客戶可以使用Spring托管的bean(自動集成功能區(qū))發(fā)現(xiàn)實例。注冊中心。

2.分布式配置(nacos):支持分布式系統(tǒng)中的外部配置,配置更改時自動刷新。 配置中心

3.流控制和服務(wù)降級(Sentinel ):支持WebServlet,WebFlux-->(比Springmvc更高級)OpenFeign,RestTemplate,Dubbo訪問限制和降級流的功能。它可以在運行時通過控制臺實時修改限制和降級流的規(guī)則,并且還支持監(jiān)視限制和降級度量標(biāo)準(zhǔn)。 - 服務(wù)熔斷限流hystrix

4.Rpc服務(wù):擴(kuò)展Spring Cloud客戶端RestTemplate(ribbon)和OpenFeign以支持調(diào)用Dubbo RPC服務(wù)。

5.分布式事務(wù)(seata):支持高性能且易于使用的分布式事務(wù)解決方案。

6.事件驅(qū)動:支持構(gòu)建與共享消息系統(tǒng)連接的高度可擴(kuò)展的事件驅(qū)動微服務(wù)。

7.阿里云對象存儲:大規(guī)模,安全,低成本,高度可靠的云存儲服務(wù)。支持隨時隨地在任何應(yīng)用程序中存儲和訪問任何類型的數(shù)據(jù)。

8.阿里云SchedulerX:準(zhǔn)確,高度可靠,高可用性的計劃作業(yè)調(diào)度服務(wù),響應(yīng)時間在幾秒鐘內(nèi)。

9.阿里云短信:阿里云短信服務(wù)覆蓋全球,提供便捷,高效,智能的通信功能,幫助企業(yè)快速聯(lián)系客戶。

與奈飛對比

注冊中心nacos

什么是nacos

Nacos致力于幫助您發(fā)現(xiàn),配置和管理微服務(wù)。它提供了一組簡單有用的功能,使您能夠?qū)崿F(xiàn)動態(tài)服務(wù)發(fā)現(xiàn),服務(wù)配置,服務(wù)元數(shù)據(jù)和流量管理。Nacos使構(gòu)建,交付和管理微服務(wù)平臺變得更容易,更快捷。它是通過微服務(wù)或云原生方法支持以服務(wù)為中心的現(xiàn)代應(yīng)用程序體系結(jié)構(gòu)的基礎(chǔ)架構(gòu)。說的通俗一些,就是承擔(dān)了奈飛框架中的Eureka的功能,相當(dāng)于注冊中心,但比Eureka更加智能與便捷。

如何安裝nacos

官方提供了Nacos的服務(wù)端供我們下載使用,我們啟動Nacos后將我們的微服務(wù)注冊進(jìn)入Nacos即可。

下載地址:[https://github.com/alibaba/nacos/releases]

啟動nacos

nacos的啟動也十分方便,在下載好的jar包目錄下執(zhí)行

- windows執(zhí)行bin目錄下的startup命令 :startup.cmd -m standalone 

- linux 執(zhí)行 :sh startup.sh -m standalone

啟動成功頁面如下所示

 nacos的默認(rèn)端口為8848,在啟動成功后,用戶即可訪問nacos,訪問地址為:(本地單機(jī)模式)http://127.0.0.1:8848/nacos/index.html

 登錄的賬號和密碼均為:nacos

登錄成功頁面如圖所示(筆者這里已經(jīng)注冊好了幾個服務(wù),故會有信息,第一次登錄且未將服務(wù)注冊到nacos的話,這里是沒有信息的)

服務(wù)架構(gòu)簡單搭建

舉例服務(wù)項目結(jié)構(gòu)

微服務(wù)調(diào)用流程

Order-Service-20010提供訂單的查詢服務(wù),Order-Client-30010調(diào)用Order-Service-20010提供的服務(wù)查詢自身的訂單信息,Order-Common作為公共服務(wù),提供了相關(guān)實體類以及對應(yīng)的無參有參構(gòu)造方法

項目搭建

父工程的pom.xml

<!--公共的一些配置-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
   <!--SpringBoot-->
    <parent>
        <groupId> org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
    </parent>
    <!--SpringCloud-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!--導(dǎo)入lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>
    </dependencies>

服務(wù)注冊到nacos

Order-Service-20010配置

添加依賴

 <dependency>
     <groupId>com.alibaba.cloud </groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

編寫啟動類 

@SpringBootApplication
@EnableDiscoveryClient
public class OrderServerStart {
    public static void main(String[] args) {
        SpringApplication.run(OrderServerStart.class);
    }
}

 編寫配置文件yml

server:
  port: 20010
spring:
  application:
    name: Order-server
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

Order-Client-30010配置

添加依賴

<dependency>
     <groupId>com.alibaba.cloud </groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

編寫啟動類

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class OrderClientStart
{
    public static void main( String[] args )
    {
        SpringApplication.run(OrderClientStart.class);
    }
}

編寫配置文件yml

server:
  port: 30010
spring:
  application:
    name: Order-client
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

啟動成功后,nacos當(dāng)中便會看見注冊成功的服務(wù) 

Nacos配置中心

客戶端接入配置中心

概述

在《SpringCloud極簡入門》中我們通過Spring Cloud Config作為統(tǒng)一配置文件管理中心,其實我們總結(jié)一下發(fā)現(xiàn)Spring Cloud Config使用起來總歸比較麻煩。Nacos作為Spring Cloud Alibaba的一個重要組件,它不僅可以用作服務(wù)注冊與發(fā)現(xiàn),也可以用來替代Spring Cloud Config作為統(tǒng)一配置文件管理,而且他的使用更為簡單和人性化。

如何實現(xiàn)

點擊頁面左上角的"+"按鈕即可添加新的配置,不過需要注意的是,編寫的后綴改為yaml,在項目中要將application.yml,修改為bootstrap.yml,并在內(nèi)部進(jìn)行相關(guān)的配置

導(dǎo)入依賴

<dependencies>
 <!--        配置中心客戶端-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!-- 服務(wù)注冊與發(fā)現(xiàn)-->
        <dependency>
            <groupId>com.alibaba.cloud </groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>springcloudalibaba-user-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

配置Controller

@RefreshScope  //刷新配置
@RestController
public class UserController {
    @Value("${temp.notify}")
    private String notify;
    @GetMapping("/user/{id}")
    public User getById(@PathVariable Long id){
        User user = new User(id,"root"+notify ,null);
        return user;
    }
}

修改yml配置

以修改order-client的yml為例

server:
  port: 30010
spring:
  application:
    name: Order-client
  profiles:
    active: dev
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        prefix: application-user
        group: DEFAULT_GROUP

測試

 root后多了一個1234,為什么呢?

因為筆者在nacos當(dāng)中的配置文件中,定義了notify的值為1234,這樣就表示配置中心配置成功

Sentinel限流控制

Sentinel和Hystrix

限流和熔斷

限流 , 限制流量,這里的流量我們可以理解成請求數(shù)量,其實就是限制服務(wù)器的請求并發(fā)數(shù)量,為什么要這么做?如果不做限流,那么在大量并發(fā)請求下我們的服務(wù)器會慢慢的變慢然后頂不住壓力而掛掉(類似堵車)。并不是說并發(fā)越大越好,有的時候我們的項目規(guī)模和業(yè)務(wù)決定了我們不需要那么大的并發(fā)性,當(dāng)大量的并發(fā)請求訪問到服務(wù)器時我們需要把部分請求拒絕在外,這個是流量限制 - 限流。

熔斷機(jī)制在在[《Spring Cloud 極簡入門》)中有詳細(xì)的解釋,熔斷機(jī)制是對服務(wù)調(diào)用鏈路的保護(hù)機(jī)制,如果鏈路上的某個服務(wù)不可訪問,調(diào)用超時,發(fā)生異常等,服務(wù)會進(jìn)行發(fā)熔斷,觸發(fā)降級返回托底數(shù)據(jù)。簡單理解就是當(dāng)服務(wù)器不可訪問,可以返回一些預(yù)先準(zhǔn)備好的兜底數(shù)據(jù)給用戶,比如友好的提示信息,不至于直接向客戶拋出異常。

Hystrix的熔斷和資源隔離

其實在[《Spring Cloud 極簡入門》]中我們已經(jīng)學(xué)習(xí)過Hystrix的熔斷和資源隔離機(jī)制,它的資源隔離可以通過線程池隔離和信號量隔離兩種方式來實現(xiàn)對流量的控制。Hystrix相比Sentinel來說它的線程池隔離(限流)會造成線程上下切換對資源的消耗比較大;Hystrix使用的信號量進(jìn)行資源的隔離效果不錯,但是無法對慢調(diào)用進(jìn)行自動降級。

Sentinel定義

Sentinel誕生于阿里巴巴,其主要目標(biāo)是流量控制和服務(wù)熔斷,2018年,Sentinel演變?yōu)橐粋€開源項目現(xiàn)如今成為了Spring Cloud Alibaba的一個子項目。Sentinel是通過限制并發(fā)線程的數(shù)量來減少不穩(wěn)定資源的影響,而不是使用線程池,省去了線程切換的性能開銷。

當(dāng)資源的響應(yīng)時間變長時,線程將開始被占用。當(dāng)線程數(shù)累積到一定數(shù)量時,新的傳入請求將被拒絕。反之亦然,當(dāng)資源恢復(fù)并變得穩(wěn)定時,占用的線程也將被釋放,新請求將被接受。

除了限制并發(fā)性外,Sentinel可以根據(jù)響應(yīng)時間降級不穩(wěn)定資源也是保證可靠性的有效方法。當(dāng)資源的響應(yīng)時間太大時,將在指定的時間窗口中拒絕所有對該資源的訪問。-- 熔斷機(jī)制

此外,Sentinel支持的熔斷降級維度更多,可對多種指標(biāo)進(jìn)行流控、熔斷,且提供了實時監(jiān)控和控制面板,功能更為強大。

Sentinel客戶端接入

導(dǎo)入依賴

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

添加yml配置

spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:1111

資源限流實現(xiàn) 

在Controller中添加一個Sentinelresource注解

 @SentinelResource(value = "getUser",blockHandler = "LimitResource")

value表示要進(jìn)行限流的方法,blockHandler表示限流之后系統(tǒng)調(diào)用的方法

 完整代碼:

@RefreshScope
@RestController
@RequestMapping("/user")
public class UserController {
    @Value("${temp.notify}")
    private String notify;
    @Autowired
    private OrderOpenFeignClient feignClient;
    //限制的資源
    @SentinelResource(value = "getUser",blockHandler = "LimitResource")
//    給資源取名user,后續(xù)通過名字來進(jìn)行限流
    @GetMapping("/{id}")
    public User getUser(@PathVariable("id") Long id){
        //發(fā)起遠(yuǎn)程調(diào)用
        List<Order> orders =feignClient.getList(id);
        int i=new Random().nextInt(2);
        System.out.println(1/i);
        User user = new User(id,"root"+notify ,orders);
        return user;
    }
       public User LimitResource(@PathVariable("id") Long id,BlockException e){
           e.printStackTrace();
             return new User(-1L,"限流了",null);
   }
}

 如何設(shè)置限流

在sentinel的當(dāng)前頁面,點擊對應(yīng)資源的流控按鈕,進(jìn)行流控策略的配置。

這里單機(jī)閾值設(shè)置為1,表示1s內(nèi)的訪問量超過一次,則會觸發(fā)限流效果。 系統(tǒng)便會執(zhí)行自己設(shè)定的LimitResource方法,筆者這里便不附上運行截圖了,配置十分簡單,配置完成也不需要重啟服務(wù),直接進(jìn)行接口訪問壓測即可。

Sentinel流控效果

快速失敗

快速失敗:(RuleConstant.CONTROL_BEHAVIOR_DEFAULT)是默認(rèn)的流控方式,當(dāng)流量達(dá)到閥值直接返回異常,QPS達(dá)到任何規(guī)則閾值后,后續(xù)請求就會立即拒絕,并拋出FlowException 異常。簡單理解:并發(fā)太高,直接請求拒絕

warmup預(yù)熱

Warm Up預(yù)熱:(RuleConstant.CONTROL_BEHAVIOR_WARM_UP)方式,根據(jù)codeFactor(默認(rèn)3)的值,從(閥值/codeFactor)為初始閥值,經(jīng)過預(yù)熱時長,才到達(dá)設(shè)置的QPS的閥值,即預(yù)熱/冷啟動方式。簡單理解:慢慢的增大處理并發(fā)的能力

排隊等待

排隊等待(RuleConstant.CONTROL_BEHAVIOR_RATE_LIMITER),忽然增加的請求并發(fā)量達(dá)到了限流閾值后續(xù)請求會被拒絕,有時候我們可能更希望后續(xù)的請求可以加入隊列進(jìn)行排隊,慢慢執(zhí)行,而不是直接拒絕請求,這種方式后嚴(yán)格控制請求通過的時間間隔,也即是讓請求以均勻的速度通過,對應(yīng)的是漏桶算法,這種方式主要用于處理間隔性突發(fā)的流量,例如消息隊列。 簡單理解:突發(fā)流量處理不過來,讓請求排隊。

Sentinel熔斷

概述

什么是熔斷

Sentinel除了流控還提供了服務(wù)熔斷和降級機(jī)制,服務(wù)之間的調(diào)用關(guān)系錯綜復(fù)雜,微服務(wù)的調(diào)用鏈上的某些服務(wù)資源不穩(wěn)定(宕機(jī),異常,超時)可能會導(dǎo)致可能請求的失敗和請求的堆積,調(diào)用鏈產(chǎn)生連鎖反應(yīng)可能會導(dǎo)致整個微服務(wù)架構(gòu)癱瘓。服務(wù)熔斷降級機(jī)制是保障高可用的重要措施之一。

Sentinel熔斷

Sentinel的服務(wù)熔斷機(jī)制會對調(diào)用鏈上的某個不穩(wěn)定(宕機(jī),異常,超時)的資源,做出請求限制,快速失敗,避免影響到其它的服務(wù)而導(dǎo)致級聯(lián)錯誤。資源熔斷后,在后續(xù)的一定時間(時間窗口)之內(nèi),對該服務(wù)的請求都自動熔斷,拋出 DegradeException異常。Sentinel擁有比Hystrix更強大和豐富的功能,能滿足我們的各種應(yīng)用場景,并且經(jīng)歷過淘寶雙十一的考驗,是微服務(wù)架構(gòu)中熔斷機(jī)制的不二選擇。

熔斷規(guī)則

平均響應(yīng)RT

平均響應(yīng)時間 (DEGRADE_GRADE_RT):當(dāng)資源的平均響應(yīng)時間超過閾值(DegradeRule 中的 count,以 ms 為單位)之后,資源進(jìn)入準(zhǔn)降級狀態(tài)。如果接下來 1s 內(nèi)持續(xù)進(jìn)入 5 個請求(即 QPS >= 5),它們的 RT 都持續(xù)超過這個閾值,那么在接下的時間窗口(DegradeRule 中的 timeWindow,以 s 為單位)之內(nèi),對這個方法的調(diào)用都會自動地熔斷(拋出 DegradeException)。注意 Sentinel 默認(rèn)統(tǒng)計的 RT 上限是 4900 ms,超出此閾值的都會算作 4900 ms,若需要變更此上限可以通過啟動配置項 -Dcsp.sentinel.statistic.max.rt=xxx 來配置。

異常比例 

異常比例(DEGRADE_GRADE_EXCEPTION_RATIO):每秒請求量 > 5 ,當(dāng)資源的每秒異??倲?shù)占通過量的比值超過閾值(DegradeRule 中的 count)之后,資源進(jìn)入降級狀態(tài),即在接下的時間窗口(DegradeRule 中的 timeWindow,以 s 為單位)之內(nèi),對這個方法的調(diào)用都會自動地返回。異常比率的閾值范圍是 [0.0, 1.0],代表 0% - 100%。

異常數(shù) 

異常數(shù) (DEGRADE_GRADE_EXCEPTION_COUNT):當(dāng)資源近 1 分鐘的異常數(shù)目超過閾值之后會進(jìn)行熔斷。注意由于統(tǒng)計時間窗口是分鐘級別的,若 timeWindow 小于 60s,則結(jié)束熔斷狀態(tài)后仍可能再進(jìn)入熔斷狀態(tài)。

慢調(diào)用比例

熔斷策略慢調(diào)用比例是以慢調(diào)用數(shù)量的比例作為閾值,首先需要設(shè)置最大 RT(即最大的響應(yīng)時間,用于鑒定是否是慢調(diào)用),請求的響應(yīng)時間大于該值則統(tǒng)計為慢調(diào)用。當(dāng)單位統(tǒng)計時長(statIntervalMs)內(nèi)請求數(shù)大于設(shè)置的最小請求數(shù),并且慢調(diào)用的比例大于比例閾值,則接下來的請求會自動熔斷,熔斷時間為設(shè)置的熔斷時長。經(jīng)過熔斷時長后熔斷器會進(jìn)入探測恢復(fù)狀態(tài)(HALF-OPEN 狀態(tài)),若在HALF-OPEN狀態(tài)下有一個請求響應(yīng)時間小于 最大RT 則結(jié)束熔斷,否則繼續(xù)熔斷。

熔斷實戰(zhàn)示例

導(dǎo)入依賴

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

配置yml

feign:
  sentinel:
    enabled: true #熔斷

配置OpenFeign

接口

@FeignClient(value = "Order-server")
public interface OrderOpenFeignClient {
    @GetMapping("/order/{id}")
    public List<Order> getList(@PathVariable("id") Long id);
}

 熔斷返回fallback

@Component
public class UserFallBack implements FallbackFactory<OrderOpenFeignClient> {
   @Override
   public OrderOpenFeignClient create(Throwable throwable) {
       return id ->Arrays.asList(new Order(-2L,"服務(wù)暫時不可用","請您稍后再試"));
    }
}

修改Controller

在SentinelResource中添加相關(guān)屬性值

Controller完整代碼

@RefreshScope
@RestController
@RequestMapping("/user")
public class UserController {
    @Value("${temp.notify}")
    private String notify;
    @Autowired
    private OrderOpenFeignClient feignClient;
    //限制的資源
    @SentinelResource(value = "getUser",blockHandler = "LimitResource",blockHandlerClass = UserFallback.class,
    fallback = "Error")
//    給資源取名user,后續(xù)通過名字來進(jìn)行限流
    @GetMapping("/{id}")
    public User getUser(@PathVariable("id") Long id){
        //發(fā)起遠(yuǎn)程調(diào)用
        List<Order> orders =feignClient.getList(id);
        int i=new Random().nextInt(2);
        System.out.println(1/i);
        User user = new User(id,"root"+notify ,orders);
        return user;
    }
    //方案1
//    public User LimitResource(@PathVariable("id") Long id,BlockException e){
//        e.printStackTrace();
//        return new User(-1L,"限流了",null);
//    }
    public User Error(@PathVariable("id") Long id){
        return new User(-1L,"熔斷數(shù)據(jù)集",null);
    }
}

因為在這里,寫了一個Error方法,并且在SentinelResource中添加了fallback="Error"所以fallback返回的將是Error的內(nèi)容。 

測試結(jié)果:

寫在最后:

SpringCloudAlibaba是一款優(yōu)秀的微服務(wù)架構(gòu),在市面上有著廣泛的應(yīng)用。這篇文章介紹了SpringCloudAlibaba的一些基本使用,適合初學(xué)者,希望能夠給大家?guī)韼椭?。筆者小,中,大廠均有面試經(jīng)驗,目前正在從事全棧開發(fā)工作,堅持每日分享java全棧開發(fā)知識與相關(guān)的面試真題,希望能夠給大家?guī)韼椭?,同大家共同進(jìn)步 

相關(guān)文章

  • Python如何使用@property @x.setter及@x.deleter

    Python如何使用@property @x.setter及@x.deleter

    這篇文章主要介紹了Python如何使用@property @x.setter及@x.deleter,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Java的枚舉enum示例詳解

    Java的枚舉enum示例詳解

    這篇文章主要給大家介紹了關(guān)于Java的枚舉enum的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 解決SpringAop內(nèi)部調(diào)用時不經(jīng)過代理類的問題

    解決SpringAop內(nèi)部調(diào)用時不經(jīng)過代理類的問題

    這篇文章主要介紹了解決SpringAop內(nèi)部調(diào)用時不經(jīng)過代理類的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring?Cloud?Eureka?搭建?&?集群方式

    Spring?Cloud?Eureka?搭建?&?集群方式

    這篇文章主要介紹了Spring?Cloud?Eureka?搭建?&?集群方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring Boot 中application.yml與bootstrap.yml的區(qū)別

    Spring Boot 中application.yml與bootstrap.yml的區(qū)別

    其實yml和properties文件是一樣的原理,且一個項目上要么yml或者properties,二選一的存在。這篇文章給大家介紹了Spring Boot 中application.yml與bootstrap.yml的區(qū)別,感興趣的朋友一起看看吧
    2018-04-04
  • springboot中PostMapping正常接收json參數(shù)后返回404問題

    springboot中PostMapping正常接收json參數(shù)后返回404問題

    這篇文章主要介紹了springboot中PostMapping正常接收json參數(shù)后返回404問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 解析MapStruct轉(zhuǎn)換javaBean時出現(xiàn)的詭異事件

    解析MapStruct轉(zhuǎn)換javaBean時出現(xiàn)的詭異事件

    在項目中用到了MapStruct,對其可以轉(zhuǎn)換JavaBean特別好奇,今天小編給大家分享一個demo給大家講解MapStruct轉(zhuǎn)換javaBean時出現(xiàn)的詭異事件,感興趣的朋友一起看看吧
    2021-09-09
  • 比較排序之冒泡排序的實現(xiàn)

    比較排序之冒泡排序的實現(xiàn)

    下面小編就為大家?guī)硪黄容^排序之冒泡排序的小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧實現(xiàn)。
    2017-06-06
  • Java中重寫和重載的區(qū)別及說明

    Java中重寫和重載的區(qū)別及說明

    Java語言中的重載和重寫是實現(xiàn)多態(tài)的兩種方式,但他們的實現(xiàn)方式和規(guī)則有所不同,重載發(fā)生在一個類中,同名的方法如果有不同的參數(shù)列表,則視為重載,重寫則發(fā)生在子類和父類之間,要求子類重寫方法和父類被重寫方法有相同的返回類型
    2024-10-10
  • java 實現(xiàn)讀取txt文本數(shù)據(jù)并以數(shù)組形式一行一行取值

    java 實現(xiàn)讀取txt文本數(shù)據(jù)并以數(shù)組形式一行一行取值

    今天小編就為大家分享一篇java 實現(xiàn)讀取txt文本數(shù)據(jù)并以數(shù)組形式一行一行取值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論