您好,登錄后才能下訂單哦!
這篇文章主要講解了“SpringCloud的OpenFeign項(xiàng)目怎么創(chuàng)建”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“SpringCloud的OpenFeign項(xiàng)目怎么創(chuàng)建”吧!
OpenFeign是聲明式的Http客戶端,通過OpenFeign發(fā)送Http請求非常的簡單
Feign 和 OpenFeign是兩個(gè)技術(shù),都是作為服務(wù)調(diào)用存在的,OpenFeign 是SpringCloud在Feign的基礎(chǔ)上進(jìn)行封裝得到的,支持SpringMvc的注解。
1.創(chuàng)建新Module項(xiàng)目 cloud-openfeign-8806
2.pom文件導(dǎo)入依賴
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>cloud-demo-20f</artifactId>
<groupId>com.lby</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-openfeign-8806</artifactId>
<dependencies>
<!-- openfeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!-- Eureka 客戶端的依賴-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- web的依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 測試的依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
3.啟動類
package com.lby;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
/**
* @EnableFeignClients OpenFeign的注解
*/
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class OpenFeignRun8806 {
public static void main(String[] args) {
SpringApplication.run(OpenFeignRun8806.class,args);
}
}
4.配置文件
server:
port: 8806
#指定當(dāng)前服務(wù)的名稱 會注冊到注冊中心
spring:
application:
name: eureka-openfeign-8806
# 指定 服務(wù)注冊中心的地址
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8801/eureka,http://localhost:8800/eureka
通過四步我們就擁有了一個(gè)最初步的項(xiàng)目,接下來,我們會通過接口+注解的方式開發(fā)OpenFeign的服務(wù)調(diào)用。
OpenFeign的開發(fā)方式:接口+注解,微服務(wù)調(diào)用的接口+@FeignClient 類似于Dao接口的開發(fā)方式(Mybatis接口式開發(fā)),之前我們開發(fā)Dao接口,在接口上添加@Mapper的注解就可以獲取一個(gè)Mybatis的接口
1.業(yè)務(wù)邏輯接口+@FeignClient創(chuàng)建OpenFeign服務(wù)調(diào)用
package com.lby.service;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author luxiaoyang
* @create 2020-04-05-19:41
*
* @FeignClient 參數(shù)是要請求服務(wù)的服務(wù)名稱
*/
@Component
@FeignClient(value = "eureka-client-8803")
public interface ConsumerFeignService {
/**
* 接口中的方法是被調(diào)用服務(wù)的Controller接口
*/
@GetMapping("showImgById")
String showImgById(@RequestParam("id") Integer id);
}
接口的書寫規(guī)則如下圖所示:
2.在消費(fèi)者中創(chuàng)建一個(gè)ConsumerController使用OpenFeign接口
package com.lby.controller;
import com.lby.service.ConsumerFeignService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author luxiaoyang
* @create 2020-04-05-19:47
*/
@RestController
public class ConsumerController {
/**
* 直接裝配OpenFeign的服務(wù)調(diào)用接口
*/
@Resource
private ConsumerFeignService consumerFeignService;
@GetMapping("testOpenFeign")
public String testOpenFeign(){
String s = consumerFeignService.showImgById(1);
return "Feign服務(wù)調(diào)用的結(jié)果為:"+s;
}
}
啟動注冊中心,服務(wù)提供者(兩個(gè)),以及Feign服務(wù)
請求eureka-openfeign-8806的Controller接口:http://127.0.0.1:8806/testOpenFeign
可以看到兩次請求都能夠獲取服務(wù)提供者的響應(yīng),并且能夠負(fù)載均衡
感謝各位的閱讀,以上就是“SpringCloud的OpenFeign項(xiàng)目怎么創(chuàng)建”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對SpringCloud的OpenFeign項(xiàng)目怎么創(chuàng)建這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。