亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringCloud Feign的使用簡介

 更新時間:2021年04月16日 10:36:44   作者:遇見_line  
這篇文章主要介紹了SpringCloud Feign的使用簡介,幫助大家更好的理解和學(xué)習(xí)使用SpringCloud,感興趣的朋友可以了解下

簡介

feign是聲明式的web service客戶端,它讓微服務(wù)之間的調(diào)用變得更簡單了,類似controller調(diào)用service。Spring Cloud集成了Ribbon和Eureka,可在使用Feign時提供負(fù)載均衡的http客戶端。

在springcloud中不僅可以使用Ribbo進(jìn)行負(fù)載均衡,也可以使用Feign。Feign是在Ribbon的基礎(chǔ)上進(jìn)行了一次改進(jìn),采用接口的方式實現(xiàn)負(fù)載均衡。

使用

  • 導(dǎo)入依賴
<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
  • 編寫對應(yīng)的接口

@FeignClient(value = "PROVIDER-NAME")聲明這是一個FeignClient,value指明需要的服務(wù)id

@FeignClient(value = "PROVIDER-NAME")
public interface DeptClientService {
// 請求的路徑需與服務(wù)提供者的路徑一致
    @RequestMapping(value = "/dev/add")
    boolean add(Dept dept);

    @RequestMapping(value = "/dev/{id}")
    Dept queryByID(@PathVariable("id") Long id );

    @PostMapping(value = "/dev/list")
    List<Dept> queryAll();
}

  • 修改Controller

我們不再使用RestTemplate來獲取所需的對象,而是通過之前定義的接口來獲取

@RestController
public class ConsumerController {
    @Autowired
    private DeptClientService service;
    @RequestMapping("/consumer/get/{id}")
    public Dept getByID(@PathVariable("id") Long id){
        return this.service.queryByID(id);
    }
    @RequestMapping("/consumer/add")
    public boolean add(String dname){
        Dept dept = new Dept();
        dept.setDname(dname);
        return this.service.add(dept);
    }
    @RequestMapping("/consumer/list")
    public List<Dept> list(){
        return this.service.queryAll();
    }

}
  • 修改啟動類

@EnableFeignClients 開啟Feign負(fù)載均衡

@SpringBootApplication(scanBasePackages = "com")
@EnableEurekaClient
@EnableFeignClients(basePackages = "com.service")
public class FeignApplication {
    public static void main(String[] args) {
        SpringApplication.run(FeignApplication.class,args);
    }
}

  • 對比:

Ribbon

public class ConsumerController {
    @Autowired
    private RestTemplate template;
    private static final String url="http://PROVIDER-NAME";
    @RequestMapping("/consumer/get/{id}")
    public Dept getByID(@PathVariable long id){
                                                //請求的路徑,返回的對象
        Dept getEntity = template.getForObject(url + "/dev/" + id, Dept.class);
        return getEntity;
    }
    @RequestMapping("/consumer/add")
    public boolean add(String dname){
        Dept dept = new Dept();
        dept.setDname(dname);
        System.out.println(dept);
        //請求的路徑,傳遞的參數(shù),返回的對象
        return template.postForObject(url+ "/dev/add",dept,Boolean.class);
    }
    @RequestMapping("/consumer/list")
    public List<Dept> list(){
        //請求的路徑,返回的對象
        return template.postForObject(url+"/dev/list",void.class,List.class);
    }

}

Feign

@RestController
public class ConsumerController {
    @Autowired
    private DeptClientService service;
    @RequestMapping("/consumer/get/{id}")
    public Dept getByID(@PathVariable("id") Long id){
        return this.service.queryByID(id);
    }
    @RequestMapping("/consumer/add")
    public boolean add(String dname){
        Dept dept = new Dept();
        dept.setDname(dname);
        return this.service.add(dept);
    }
    @RequestMapping("/consumer/list")
    public List<Dept> list(){
        return this.service.queryAll();
    }

}

總結(jié)

Feign的使用與Ribbon不同的地方在于

  1. Feign通過接口來實現(xiàn),更符合我們的面向接口編程的習(xí)慣
  2. 在Ribbon的Controller中我們需要將url拼接,而Feign幫我們進(jìn)行了拼接

以上就是SpringCloud Feign的使用簡介的詳細(xì)內(nèi)容,更多關(guān)于SpringCloud Feign的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java pdf加水印的方法

    java pdf加水印的方法

    這篇文章主要為大家詳細(xì)介紹了java pdf加水印的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Java課設(shè)案例之百行代碼實現(xiàn)簡易計算器

    Java課設(shè)案例之百行代碼實現(xiàn)簡易計算器

    下面這篇文章主要給大家介紹了關(guān)于Java課設(shè)案例之百行代碼實現(xiàn)簡易計算器的相關(guān)資料,這是一個關(guān)于java簡單計算器的完整課程設(shè)計以及源碼,需要的朋友可以參考下
    2023-06-06
  • Java實現(xiàn)簡單訂餐系統(tǒng)

    Java實現(xiàn)簡單訂餐系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)簡單訂餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Mybatis-Plus支持GBase8s分頁查詢的實現(xiàn)示例

    Mybatis-Plus支持GBase8s分頁查詢的實現(xiàn)示例

    本文主要介紹了使?Mybatis-Plus?支持?GBase8s?的分頁查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 解決CentOS7中運行jar包報錯:xxx(Permission?denied)

    解決CentOS7中運行jar包報錯:xxx(Permission?denied)

    在實際工作我們經(jīng)常會在linux上運行Spring boot編寫的微服務(wù)程序,下面這篇文章主要給大家介紹了關(guān)于如何解決CentOS7中運行jar包報錯:xxx(Permission?denied)的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • java排查進(jìn)程占用系統(tǒng)內(nèi)存高方法

    java排查進(jìn)程占用系統(tǒng)內(nèi)存高方法

    這篇文章主要為大家介紹了java進(jìn)程占用系統(tǒng)內(nèi)存高排查方法,
    2023-06-06
  • Spring-IOC容器-Bean管理-基于XML方式超詳解

    Spring-IOC容器-Bean管理-基于XML方式超詳解

    這篇文章主要介紹了Spring為IOC容器Bean的管理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-08-08
  • java設(shè)計模式系列之裝飾者模式

    java設(shè)計模式系列之裝飾者模式

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計模式之裝飾者模式,裝飾者模式是一種結(jié)構(gòu)式模式,感興趣的朋友可以參考一下
    2016-02-02
  • Java設(shè)計模式之模版方法模式簡介

    Java設(shè)計模式之模版方法模式簡介

    這篇文章主要介紹了Java設(shè)計模式之模版方法模式,需要的朋友可以參考下
    2014-07-07
  • Java實現(xiàn)讀取csv文件的兩種方式

    Java實現(xiàn)讀取csv文件的兩種方式

    這篇文章主要為大家詳細(xì)介紹了如何利用Java讀取csv文件的兩種方式,文中的示例代碼講解詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以了解一下
    2023-12-12

最新評論