【Java用法】微服务之间的相互调用方式之一,通过FeignClient客户端调用其他微服务的方法

本文目录

一、背景描述

二、配置方法

2.1 添加maven依赖

2.2 添加@EnableFeignClients注解

2.3 配置文件application.properties中添加路径

2.4 服务A中添加服务B的接口

2.5 调用此接口


在最近做的项目中,由于之前做的各个服务都是相互独立的,但是业务要求调用其他已做好的服务的功能,于是就有了正在做的项目调用已经上线的服务的需求。

一、背景描述

公司网站(服务A)改版升级中,由于需要调用商品中心(服务B)的接口,查询出公司的所有产品,并展示在网站上。由于这两个是独立的服务,相互之前没有关联性,所以会牵出一个问题?这服务A怎么调用服务B。

两个服务的项目结构如下:

服务A:公司网站采用的是Spring boot(2.0.0) + Maven项目结构

服务B:商品中心采用的是标准的微服务项目结构

二、配置方法

2.1 添加maven依赖

对于spring boot 2.0.0版本以上的,引用openfeign,低于这个版本的,

<!--引入feign-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-openfeign</artifactId>
	<version>2.0.2.RELEASE</version>
</dependency>

2.2 添加@EnableFeignClients注解

在服务A的启动类上添加@EnableFeignClients注解,使得该服务支持FeignClients功能。

@EnableScheduling
@SpringBootApplication(scanBasePackages={"com.iot.shcs","com.iot.pwfm"})
//开启事务管理
@EnableTransactionManagement
@MapperScan({"com.iot.pwfm.context.dao","com.iot.pwfm.context.*.dao"})
@EnableFeignClients
public class WebsiteApplication {

	public static void main(String[] args) {
		SpringApplication.run(WebsiteApplication .class, args);
	}
}

2.3 配置文件application.properties中添加路径

配置文件中添加如下配置,然后在类中通过@FeignClient注解获取

#################调用商品中心服务#####################
goodsUrl=http://dev.iot.com:8200
dingDingUrl=http://dev.iot.com:8022/approvalProcess/approvalProcessCreate

2.4 服务A中添加服务B的接口

通过@FeignClient注解获取在配置文件中的url地址

@FeignClient(url = "${goodsUrl}", name = "itemCategory")
public interface ItemCategoryApi {

    /**
     * 获取商品类目二维列表
     *
     * @return 商品类目二维列表
     */
    @GetMapping("/itemcategory/tree/get")
    CommResponse<List<CategoryDTO>> queryTree();
}

2.5 调用此接口

把这个接口当成本项目中的一个接口类正常注入调用即可。如图所示:

完结!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No8g攻城狮

向每一个努力改变现状的你致敬!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值