使用OpenFeign在不同微服务之间传递用户信息时失败

文章目录

起因

从pay-service中实现下单时,会调用到user-service中的扣减余额。

因此这里需要在不同微服务之间传递用户信息。

但是user-service中始终从始至终拿不到user的信息。

原因

在pay-service中,不仅要Enable OpenFeign,还要让自己编写的OpenFeign配置类生效:

但是这样只是配置了。有需要用这个配置类从当前微服务传递到下一个微服务的功能的,但是也有不需要这个配置功能的。

如何操作?

在需要调用OpenFeign的service的启动类XxxApplication(eg, PayApplication)中添加如下注解:

java 复制代码
@EnableFeignClients(basePackages = "com.hmall.api.client", basePackageClasses = PayApplication.class, defaultConfiguration = DefaultFeignConfig.class)

只有添加了defaultConfiguration = DefaultFeignConfig.class的配置类,才会在该service中让刚刚写的不同微服务之间传递用户id的功能生效。

这里的@EnableFeignClients(basePackages = "com.hmall.api.client", basePackageClasses = PayApplication.class)表示使用Feign客户端:

解决方法:

一定要不能忘记添加:
defaultConfiguration = DefaultFeignConfig.class的配置类,才会在该service中让刚刚写的不同微服务之间传递用户id的功能生效。

最终的样子如下:

java 复制代码
package com.hmall.pay;

import com.hmall.api.config.DefaultFeignConfig;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * @Author: GQLiu
 * @DATE: 2024/9/1 23:44
 */
@SpringBootApplication
@MapperScan("com.hmall.pay.mapper")
@EnableFeignClients(basePackages = "com.hmall.api.client", basePackageClasses = PayApplication.class, defaultConfiguration = DefaultFeignConfig.class)
public class PayApplication {
    public static void main(String[] args) {
        SpringApplication.run(PayApplication.class, args);
    }
}
相关推荐
youdexiang20 分钟前
Android录音软件时间关键词检索功能分析
java·人工智能
sunshine22 girl1 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
code2cat1 小时前
Java进阶篇之AtomicStampedReference:引用回到原值,版本戳仍能记住变化
java·cas·并发编程·aba
泡茶喝茶写代码3 小时前
A股量化数据工程:从 REST 接口到策略信号(第 8 篇):成长能力因子:营收与利润增速
java·python·股票数据api·股票数据api接口·股票量化数据api·股票量化数据接口·股票数据api数据
\光辉岁月/4 小时前
7.javase-面向对象
java·开发语言
weixin_531094694 小时前
heap_4内存管理
java·开发语言·算法
程序员南飞4 小时前
win系统安装minio
java·数据结构·算法
Dawson Zhu4 小时前
《Agentic Design Patterns》第 1 章导读:提示词链(Prompt Chaining)
人工智能·语言模型·架构·aigc·agi
Escalating_xu4 小时前
【Python】使用库:标准库、第三方库、pip、项目实战与程序打包
java·python·pip
feiyu_gao4 小时前
Mindcraft:从个人实践到可复用模式集
架构·aigc·ai编程