91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringCloud微服務架構中的Feign怎么使用

發布時間:2022-02-24 17:50:31 來源:億速云 閱讀:168 作者:iii 欄目:開發技術

這篇文章主要講解了“SpringCloud微服務架構中的Feign怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“SpringCloud微服務架構中的Feign怎么使用”吧!

簡介

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

在springcloud中不僅可以使用Ribbo進行負載均衡,也可以使用Feign。Feign是在Ribbon的基礎上進行了一次改進,采用接口的方式實現負載均衡。

使用

  • 導入依賴

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
  • 編寫對應的接口

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

@FeignClient(value = "PROVIDER-NAME")
public interface DeptClientService {
// 請求的路徑需與服務提供者的路徑一致
    @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負載均衡

@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);
        //請求的路徑,傳遞的參數,返回的對象
        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();
    }

}

感謝各位的閱讀,以上就是“SpringCloud微服務架構中的Feign怎么使用”的內容了,經過本文的學習后,相信大家對SpringCloud微服務架構中的Feign怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平度市| 那曲县| 长寿区| 涿州市| 南汇区| 新绛县| 三江| 祥云县| 靖宇县| 若尔盖县| 晋江市| 宜君县| 栾城县| 灵璧县| 登封市| 临漳县| 孙吴县| 长乐市| 福建省| 黄山市| 淳安县| 山西省| 长春市| 临猗县| 乐都县| 改则县| 辰溪县| 赣榆县| 云龙县| 广饶县| 新和县| 漯河市| 闻喜县| 炎陵县| 微博| 赣州市| 个旧市| 襄汾县| 自贡市| 栾城县| 朝阳县|