SpringBoot + openFeign实现远程接口调用
创始人
2024-02-08 12:33:12

SpringBoot服务之间通过openFeign实现远程接口调用

现在的微服务项目不少都使用的是springboot+spring cloud构建的项目,微服务之间的调用都离不开feign来进行远程调用。那么我们一个服务需要调用第三方的服务的时候,我们常常可能使用httpclient或者restTemplate等客户端api来实现远程调用,其实我们可以在微服务没有适用spring cloud框架的情况下,想调用第三方服务,也可以通过feign组件实现http的远程调用。

实现过程

1.首先创建服务端项目,提供数据接口

1.1添加依赖

org.springframework.bootspring-boot-starter-web
org.projectlomboklombok

1.2 配置application.yml

application.yml:

server:port: 8080spring:application:name: serviceDemo

1.3 实体类

User:

package com.example.servicedemo.entity;import lombok.Data;/*** 用户信息* @author qzz*/
@Data
public class User {private Integer id;private String name;private Integer age;
}

1.4 添加控制器方法

UserController:

package com.example.servicedemo.controller;import com.example.servicedemo.entity.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;/*** @author qzz*/
@RestController
public class UserController {@RequestMapping("/api/user/getUserList")public List getUserList(){//模拟数据库请求数据List list = new ArrayList<>();User user = new User();user.setId(1);user.setName("Jack");user.setAge(31);list.add(user);return list;}
}

1.5 启动类

package com.example.servicedemo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @author qzz*/
@SpringBootApplication
public class ServiceDemoApplication {public static void main(String[] args) {SpringApplication.run(ServiceDemoApplication.class, args);}}

浏览器访问:http://localhost:8080/api/user/getUserList
在这里插入图片描述

2.创建客户端项目,调用服务端接口

2.1添加依赖

org.springframework.bootspring-boot-starter-web

org.springframework.cloudspring-cloud-starter-openfeign
org.projectlomboklombok

2.2 配置application.yml

application.yml:

server:port: 8081spring:application:name: clientName

2.3 实体类

User:

package com.example.clientdemo.entity;import lombok.Data;/*** @author qzz*/
@Data
public class User {private Integer id;private String name;private Integer age;
}

2.4 创建OpenFeign接口

注意:@FeignClient的name和value属性必填其一,另外url必填。

package com.example.clientdemo.feign;import com.example.clientdemo.entity.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;/*** openFeign接口* URL:就是远程端需要调用接口的服务URL路径,name:就是服务名,value和name一样* @author qzz*/
@FeignClient(name = "serviceDemo",url = "http://localhost:8080")
public interface ServiceDemoFeign {/*** 获取用户列表* @return*/@RequestMapping("/api/user/getUserList")List getUserList();}

2.5 添加控制器方法

UserController:


/*** @author qzz*/
@RestController
public class UserController {/*** 注入OpenFeign接口*/@Autowiredprivate ServiceDemoFeign serviceDemoFeign;@RequestMapping("/api/client/user/getUserList")public List getUserList(){return serviceDemoFeign.getUserList();}}

2.6 启动类

启动类需要添加@EnableFeignClients注解。
加入EnableFeignClients开启Feign注解,使Feign的bean可以被注入

package com.example.clientdemo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;/*** @author qzz*/
@EnableFeignClients
@SpringBootApplication
public class ClientDemoApplication {public static void main(String[] args) {SpringApplication.run(ClientDemoApplication.class, args);}}

2.7 测试效果

浏览器访问:http://localhost:8081/api/client/user/getUserList
在这里插入图片描述
返回结果成功,说明服务调用成功。

完整代码

点击此处进行下载

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...