若依微服务框架两个服务之间调用-参考ruoyi-api-system

在实际开发中,需要服务之间的调用,若依框架如何实现两个服务
1,先看下项目架构

在这里插入图片描述我们参考ruoyi-api-sysytem来写,其中我们服务提供写在ruoyi-tsmk(可以参考往期,如何新增一个业务模块),消费写在ruoyi-system(简单测试下)

2,若依采用的是FeignClient
我们先来看看FeignClient注解可能涉及到的参数
在这里插入图片描述value-服务提供方的服务名称,在这里面我们的服务提供是ruoyi-tsmk,因此
在这里插入图片描述2,我们在ruoyi-api下面新建一个模块
在这里插入图片描述在这里插入图片描述3,新建完毕后,我们建一个包,新建一个接口
在这里插入图片描述RemoteStudentService类代码参考如下:

package com.ruoyi.tsmk.api;

import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.tsmk.api.factory.RemoteStudentFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * 用户服务
 * 
 * @author ruoyi
 */
@FeignClient(contextId = "remoteStudentService", value = ServiceNameConstants.TSMK_SERVICE, fallbackFactory = RemoteStudentFallbackFactory.class)
public interface RemoteStudentService
{
    /**
     * 通过用户名查询用户信息
     *
     * @return 结果
     */
    @GetMapping("/student/get/{id}")
    public R<String> getStudent(@PathVariable("id") Long id);


}

其中contextId 别和其他的重复,同一服务下唯一性

@GetMapping(“/student/get/{id}”)
public R getStudent(@PathVariable(“id”) Long id);

这个路径与我们等会在消费方需要保持一致,其中R是若依用来统一处理的对象。

RemoteStudentFallbackFactory 类是回馈用的,

package com.ruoyi.tsmk.api.factory;

import com.ruoyi.common.core.domain.R;
import com.ruoyi.tsmk.api.RemoteStudentService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;

/**
 * 用户服务降级处理
 * 
 * @author ruoyi
 */
@Component
public class RemoteStudentFallbackFactory implements FallbackFactory<RemoteStudentService>
{
    private static final Logger log = LoggerFactory.getLogger(RemoteStudentFallbackFactory.class);

    @Override
    public RemoteStudentService create(Throwable throwable)
    {
        log.error("用户服务调用失败:{}", throwable.getMessage());
        return new RemoteStudentService()
        {
            @Override
            public R<String> getStudent(Long id)
            {
                return R.fail("获取用户失败:" + throwable.getMessage());
            }


        };
    }
}

配置文件,我们把ruoyi-api-system中的复制改下就行
在这里插入图片描述在这里插入图片描述注意这个地方路径别写错了,否则可能会找不到bean
在这里插入图片描述4,
我们现在写服务提供方,注意路径、方法名别写错了,这里我们随便在service里面返回点什么文字,
在这里插入图片描述
在这里插入图片描述5,我们在写服务消费方
在system中随便找个controller下面调用下我们ruoyi-api-tsmk中的方法
在这里插入图片描述这里需要引入包,
在这里插入图片描述6,开始测试
把认证、网关、系统、tsmk服务启动
使用postman测试

在这里插入图片描述
在这里插入图片描述
测试结果:服务system成功调用tsmk的接口
在这里插入图片描述

  • 12
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
若依框架系列视频教程是一套针对若依框架微服务架构的教学视频。若依框架是一款开源的Java开发框架,它提供了一套完善的开发工具和组件,可以帮助开发者快速构建稳定、高效的企业级应用程序。 ruoyi-cloud微服务版本是若依框架微服务架构版本,它将应用程序按照不同的功能模块拆分成多个微服务,每个微服务独立运行,通过服务间的通信协议进行交互和协作,从而实现了系统的松耦合和可伸缩性。 这套视频教程以实际项目为案例,详细介绍了若依框架ruoyi-cloud微服务版本的搭建和使用方法。从环境准备、开发工具的选择,到项目的创建、模块的划分,再到各个微服务的设计和实现,视频教程一步步指导学习者完成整个过程。 通过学习这套视频教程,学员可以了解和掌握若依框架微服务架构的开发原理和实践经验。视频教程不仅注重理论知识的掌握,还通过实际操作和示例代码演示,帮助学员更好地理解和运用所学内容。 此外,教程还提供了常见问题解答、技术论坛等学习资源和互动平台,学员可以通过这些渠道与其他学员一起共同学习和交流,进一步提高自己的应用开发能力。 总之,若依框架系列视频教程是一套系统、全面地介绍若依框架ruoyi-cloud微服务版本的教学资源,通过学习这套教程,可以帮助开发者快速上手和应用这一先进的开发技术,提高开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值