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

 更新时间:2026年06月02日 14:04:28   作者:快起来写bug了  
SpringCloud服务调用详解与Hystrix熔断机制介绍,通过创建接口和添加依赖实现不同模块间的服务调用,并探讨了Hystrix在处理容错和熔断中的应用

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的具体使用

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解JAVA之运算符

    详解JAVA之运算符

    这篇文章主要介绍了详解Java中运算符以及相关的用法讲解,一起跟着小编学习下吧,希望能够给你带来帮助
    2021-11-11
  • SpringCloud基本Rest微服务工程搭建过程

    SpringCloud基本Rest微服务工程搭建过程

    这篇文章主要介绍了SpringCloud基本Rest微服务工程搭建,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java利用ElasticSearch实现自动补全功能

    Java利用ElasticSearch实现自动补全功能

    这篇文章主要为大家详细介绍了Java如何利用ElasticSearch实现跟谷歌和百度类似的下拉补全提示功能,文中的示例代码讲解详细,需要的可以参考一下
    2023-08-08
  • Java中的Optional处理方法

    Java中的Optional处理方法

    在我们日常的开发中,我们经常会遇到 NullPointerException,如何才能优雅的处理NPE?这里告诉大家一个较为流行的方法,这篇文章主要介绍了Java中的Optional处理方法,需要的朋友可以参考下
    2022-09-09
  • java中XML的使用全过程

    java中XML的使用全过程

    这篇文章主要介绍了java中XML的使用全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Java枚举类enum介绍

    Java枚举类enum介绍

    这篇文章主要介绍了Java枚举类enum介绍,和其它普通类一样,enum同样可以有成员变量、方法、构造器,也可以实现一个或多个接口,需要的朋友可以参考下
    2015-04-04
  • Java RabbitMQ的TTL和DLX全面精解

    Java RabbitMQ的TTL和DLX全面精解

    过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。DLX, 可以称之为死信交换机,当消息在一个队列中变成死信之后,它能被重新发送到另一个交换机中,这个交换机就是DLX ,绑定DLX的队列就称之为死信队列
    2021-09-09
  • 详解Java中Collector接口的组成

    详解Java中Collector接口的组成

    今天给大家带来的是关于Java基础的相关知识,文章围绕着Collector接口的组成展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Mybatis返回Map数据方式示例

    Mybatis返回Map数据方式示例

    这篇文章主要为大家介绍了Mybatis返回Map数据方式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • java实现百度云文字识别接口代码

    java实现百度云文字识别接口代码

    这篇文章主要为大家详细介绍了java实现百度云文字识别的接口代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11

最新评论