SpringCloud实现一个模块调用另一个模块的服务

本文围绕SpringCloud展开,介绍了基于该框架搭建的项目中,不同模块间无法直接调用服务的问题。详细说明了实现模块间服务调用的准备工作,包括创建package包、添加依赖、添加注解、创建接口等,还给出了熔断器Hystrix的使用链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringCloud实现一个模块调用另一个模块的服务

简介

基于SpringCloud框架搭建的项目,不同模块之间是无法调用各自的服务的,但是经常我们需要使用这样的模式去开发,那么如何实现不同模块之间的服务调用呢?

准备

1.在需要调用其他模块服务的项目中创建一个package包,里面定义三个类,如下图

在要调用别的模块的模块加依赖

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

在启动类添加注解

@EnableFeignClients   //启用Feign客户端
package com.yuwan.qiniuvideo;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
@EnableDiscoveryClient 
@EnableFeignClients//启用Feign客户端
public class VideoApplication {

	@Bean
	@LoadBalanced//对restTemplate进行负载均衡
	public RestTemplate restTemplate () {
		return new RestTemplate();
	}
	public static void main(String[] args) {
		SpringApplication.run(VideoApplication.class, args);
	}

}


创建接口
MemberClient:

package com.yuwan.qiniuvideo.client;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(name="member")//book 是service id指明调用的是book这个服务里的接口,再往后所有有关book服务的接口调用都在这里面写
/*Feign 默认就有支持Ribbon 负载均衡,我们只需要不熟多个book微服务就可以了,客户端可以自动轮询选择调用*/
public interface MemberClient {

	@GetMapping("/selectMemberInfo")
	public RestResult getInfo(@RequestParam("id") Long id);
	
	//如果是 postmapping 的话接受参数 就是用@Requestbody 用map 接参  (@Requestbody Map reqest)
}

然后在控制层创建MemberClient就可以调用了

springcloud 熔断器Hystrix的具体使用:https://blog.youkuaiyun.com/Lijunhaodeboke/article/details/93160347
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值