使用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);
    }
}
相关推荐
踩着两条虫23 分钟前
「AI + 低代码」的可视化设计器
开发语言·前端·低代码·设计模式·架构
budingxiaomoli36 分钟前
Spring IoC &DI
java·spring·ioc·di
Spider Cat 蜘蛛猫38 分钟前
Springboot SSO系统设计文档
java·spring boot·后端
未若君雅裁43 分钟前
MySQL高可用与扩展-主从复制读写分离分库分表
java·数据库·mysql
学习中.........1 小时前
从扰动函数的变化,感受红黑树带来的性能提升
java
计算机安禾1 小时前
【c++面向对象编程】第24篇:类型转换运算符:自定义隐式转换与explicit
java·c++·算法
weixin199701080162 小时前
【保姆级教程】淘宝/天猫商品详情 API(item_get)接入指南:Python/Java/PHP 调用示例与 JSON 返回值解析
java·python·php
环流_2 小时前
redis核心数据类型在java中的操作
java·数据库·redis
雨辰AI2 小时前
SpringBoot3 项目国产化改造完整流程|从 MySQL 到人大金仓落地
java·数据库·后端·mysql·政务
带刺的坐椅2 小时前
Java 流程编排新范式 Solon Flow:一个引擎,七种节点,覆盖规则/任务/工作流/AI 编排全场景
java·spring·ai·solon·flow