您好,登錄后才能下訂單哦!
這篇文章主要講解了“SpringCloud的OpenFeign項目怎么創建”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“SpringCloud的OpenFeign項目怎么創建”吧!
OpenFeign是聲明式的Http客戶端,通過OpenFeign發送Http請求非常的簡單
Feign 和 OpenFeign是兩個技術,都是作為服務調用存在的,OpenFeign 是SpringCloud在Feign的基礎上進行封裝得到的,支持SpringMvc的注解。
1.創建新Module項目 cloud-openfeign-8806
2.pom文件導入依賴
<?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
#指定當前服務的名稱 會注冊到注冊中心
spring:
application:
name: eureka-openfeign-8806
# 指定 服務注冊中心的地址
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8801/eureka,http://localhost:8800/eureka
通過四步我們就擁有了一個最初步的項目,接下來,我們會通過接口+注解的方式開發OpenFeign的服務調用。
OpenFeign的開發方式:接口+注解,微服務調用的接口+@FeignClient 類似于Dao接口的開發方式(Mybatis接口式開發),之前我們開發Dao接口,在接口上添加@Mapper的注解就可以獲取一個Mybatis的接口
1.業務邏輯接口+@FeignClient創建OpenFeign服務調用
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 參數是要請求服務的服務名稱
*/
@Component
@FeignClient(value = "eureka-client-8803")
public interface ConsumerFeignService {
/**
* 接口中的方法是被調用服務的Controller接口
*/
@GetMapping("showImgById")
String showImgById(@RequestParam("id") Integer id);
}
接口的書寫規則如下圖所示:
2.在消費者中創建一個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的服務調用接口
*/
@Resource
private ConsumerFeignService consumerFeignService;
@GetMapping("testOpenFeign")
public String testOpenFeign(){
String s = consumerFeignService.showImgById(1);
return "Feign服務調用的結果為:"+s;
}
}
啟動注冊中心,服務提供者(兩個),以及Feign服務
請求eureka-openfeign-8806的Controller接口:http://127.0.0.1:8806/testOpenFeign
可以看到兩次請求都能夠獲取服務提供者的響應,并且能夠負載均衡
感謝各位的閱讀,以上就是“SpringCloud的OpenFeign項目怎么創建”的內容了,經過本文的學習后,相信大家對SpringCloud的OpenFeign項目怎么創建這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。