首页 > 其他分享 >OpenFeign调用

OpenFeign调用

时间:2024-07-19 17:43:38浏览次数:15  
标签:调用 pw OpenFeign void amount UserClient public

bug01:在其他模块调用找不到bean时,在api模块

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.hmall.api.client.UserClient\

4.1.1.引入依赖

cart-service服务的pom.xml中引入OpenFeign的依赖和loadBalancer依赖:

  <!--openFeign-->
  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
  </dependency>
  <!--负载均衡器-->
  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-loadbalancer</artifactId>
  </dependency>

4.1.2.启用OpenFeign

接下来,我们在cart-serviceCartApplication启动类上添加注解,启动OpenFeign功能:

4.1.3.编写OpenFeign客户端

@FeignClient(value = "user-service", configuration = UserClientFallbackFactory.class)
public interface UserClient {
    @PutMapping("/users/money/deduct")
    void deductMoney(@RequestParam("pw") String pw,@RequestParam("amount") Integer amount);

    @PutMapping("/users/lock")
     void lockUser(@RequestBody LockUserDTO dto);
}

1.写一个client

@FeignClient(value = "user-service", configuration = UserClientFallbackFactory.class)
public interface UserClient {
    @PutMapping("/users/money/deduct")
    void deductMoney(@RequestParam("pw") String pw,@RequestParam("amount") Integer amount);

    @PutMapping("/users/lock")
     void lockUser(@RequestBody LockUserDTO dto);
}

2.写对应的fallback

public class UserClientFallbackFactory implements FallbackFactory<UserClient> {
    @Override
    public UserClient create(Throwable cause) {
        return new UserClient() {
            @Override
            public void deductMoney(String pw, Integer amount) {
                log.error("扣减余额异常,异常原因:", cause);
                throw new RuntimeException(cause);
            }
            @Override
            public void lockUser(LockUserDTO dto) {
            }
            public List<RoleDTO> queryUserRoles(Long userId) {
                log.error("解锁用户异常,异常原因:", cause);
                return Collections.emptyList();
            }
        };
    }
}

3.

标签:调用,pw,OpenFeign,void,amount,UserClient,public
From: https://www.cnblogs.com/dragon-proud-sky/p/18312003

相关文章

  • 分享php两个实用类:单线程调用和集合类
    单线程类<?php/***单线程执行方法*/namespacebackend\components;classSingleThread{/***单线程执行方法*@param$methodstring'\backend\components\Tool::test'*@param$paramarray方法$method的参数*@returnvoid*/......
  • windows远程桌面打开rdp 调用显卡
    -----------------------------------------------------------------------------------------------------------前情提要:服务器在公网环境,带宽只有30M。远程桌面多开玩游戏,设置RDP服务端使用GPU。压缩传输带宽避免造成卡顿。如果是内网,也可以用,还可以提供一个注册表键值,修......
  • 易优CMS模板标签uitype栏目调用在模板文件index.htm中调用uitype标签,实现指定栏目可视
    【基础用法】标签:uitype描述:栏目编辑,比uitext、uihtml、uiupload标签多了一个typeid属性,使用时结合html一起才能完成可视化布局,只针对具有可视化功能的模板。用法:<divclass="eyou-edit"e-id="文件模板里唯一的数字ID"e-page='文件模板名'e-type="type">{eyou:uitypetypeid=......
  • PHP 调用 JD 详情 API 接口:数据获取新途径
    在当今数字化的商业环境中,准确和及时的数据对于企业的决策和运营至关重要。京东(JD)作为国内知名的电商平台,其商品详情数据具有极高的价值。通过使用PHP调用JD详情API接口,为我们开辟了一条全新的数据获取途径。一、JD详情API接口简介JD详情API接口提供了丰富的商......
  • 【6!使用本地大模型调用代码,根本就是一场骗局!】
    通过大模型调用其他工具到底可不可行?ChatGPT或许能轻松搞定一切,但同样的需求落在本地大模型上,恐怕就要打个问号了。法国开发工程师EmilienLancelot尝试了多款号称具备工具调用功能的agent框架,来看看本地大模型到底能不能完成任务,但结果就像他总结的“一无所获”。是......
  • GICV3中断控制器调用流程
    GICV3中断控制器初始化调用链/kernel/irq/handle.c:#ifdefCONFIG_GENERIC_IRQ_MULTI_HANDLERint__initset_handle_irq(void(*handle_irq)(structpt_regs*)){if(handle_arch_irq)return-EBUSY;handle_arch_irq=handle_irq;return0;}#en......
  • 通过调用视频分享页,企业的MES、ERP、OA等第三方应用软件轻松直接调取视频监控的实时视
    目录一、企业的管理系统软件为何要调用实时视频监控1、监控与反馈能够实时呈现2、数据一致性和准确性3、增强安全性4、优化生产流程5、提升决策支持能力二、企业的管理系统软件介绍1、ERP系统(1)定义(2)主要功能与特点(3)应用场景2、MES系统(1)定义(2)主要功能与特点(3)应......
  • JDK调用工具(三)
    1.OkHttp的拦截机制OkHttp的拦截机制运用了责任链设计模式,允许拦截器以链式方式工作,每个拦截器都可以处理请求和响应,并将请求或响应传递给链中的下一个拦截器。这种机制极大地增强了OkHttp的灵活性和可扩展性。具体来说,每个拦截器在OkHttp的请求/响应流程中扮演着“处理者”......
  • C#调用C++库,进行串口通信
    1、添加C++接口实现,将dll放置在运行路径下。dll文件下载:https://files.cnblogs.com/files/ZM191018/SerialPortLib.7z?t=1721271982&download=true[DllImport("SerialPortLib.dll",CharSet=CharSet.Unicode,CallingConvention=CallingConvention.StdCall)]......
  • LangChain补充二:LCEL和Runnable更加方便的创建调用链
    https://www.alang.ai/langchain/101/lc05一:LCEL入门LangChain的设计围绕着让AI应用开发者能够方便地将多个流程连缀成一个AI应用的业务逻辑,包括Chain与Agent。每个流程都被封装成一个runnable(langchain_core.runnables),包括提示语模板、模型调用、输出解析器、工具......