[Spring Cloud] Open Feign---扩展

news2024/10/6 12:30:24

✨✨个人主页:沫洺的主页

📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 

                           📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏

                           📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏     

💖💖如果文章对你有所帮助请留下三连✨✨

衔接上篇

🌹Open Feign扩展

创建子模块user-api

 pom.xml引入最小的依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.moming</groupId>
        <artifactId>spring-cloud-root</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>user-api</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
    </dependencies>

</project>

父类pom中指定模块

<module>user-api</module>

整理模块结构,改删的删

定义接口

public interface IUserService {
    //通过用户Id返回用户名称   /user/name?id=12
    @GetMapping("/user/name")
    String getName(@RequestParam Integer id);

    //通过用户Id返回用户金额  /user/amount?id=12
    @GetMapping("/user/amount")
    Integer getAmount(Integer id);
}

接下来模拟个场景,子模块a要去调用api中的接口

a模块导入api依赖坐标

        <dependency>
            <groupId>com.moming</groupId>
            <artifactId>user-api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>

创建实现类去实现IUserService,模拟返回指定数据

@RestController
public class UserServiceImpl implements IUserService {
    @Override
    public String getName(Integer id) {
        return "张"+id;
    }

    @Override
    public Integer getAmount(Integer id) {
        return id*100;
    }
}

启动a模块,测试接口

 然后b模块去调用a服务时,就可以在AServiceClient中去实现IUserService

@FeignClient("a")
public interface AServiceClient extends IUserService {

    //@GetMapping("/a/test")
    //String test(@RequestParam(value = "name",required = false) String name);
    //
    //@GetMapping("/a/age/{age}")
    //String age(@PathVariable Integer age);
}

Debug测试

@RestController
public class B {
    @Autowired
    private AServiceClient aServiceClient;

    @GetMapping("use-openfeign")
    public String callAServer(@RequestParam(value = "nickName",required = false) String nickName){
        //String value = aServiceClient.test(nickName);
        //String value2 = aServiceClient.age(18);
        String value = aServiceClient.getName(3);
        return value;
    }

    //@Autowired
    //private RestTemplate restTemplate;
    //@GetMapping("/b/test")
    //public String test(@RequestParam(value = "nickName",required = false) String nickName){
    //    //希望访问到A的应用
    //    String ret = restTemplate.getForObject("http://a/a/test?name=张三", String.class);
    //    return ret+"的小名: "+nickName;
    //}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]java毕业设计汽车租赁管理系统-

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Prometheus系列(二)Grafana可视化部署

概念 Grafana 是一个监控仪表系统&#xff0c;它是由 Grafana Labs 公司开源的的一个系统监测工具&#xff0c;它可以大大帮助我们简化监控的复杂度&#xff0c;我们只需要提供需要监控的数据&#xff0c;它就可以帮助生成各种可视化仪表&#xff0c;同时它还有报警功能&#…

【数据结构】线性表 _顺序表 链表的增删查改 _[细节分析+代码实现]

快速导航 1.线性表 2.顺序表 2.1 概念及结构 2.2 静态结构和动态结构的比较 2.3 接口实现(重点) 2.3.1 SeqList(初始化) &SeqListPrint(依次打印表中数据) 2.3.2 SeqListPushBack(尾插) 2.3.3 SeqListPushFront(头插) 2.3.4 SeqListPopBack(尾删) & SeqListPopFront(头…

C语言小游戏之扫雷(万字详解)

hello&#xff0c;大家好&#xff0c;今天我们继续为大家带来一个小游戏&#xff0c;扫雷。相信这个游戏又是很多人的童年&#xff0c;那么我们今天就来实现一下这个扫雷游戏。 目录 一、游戏简介 二、游戏的基本设计 1.游戏基本思路 2.游戏基本框架 3.如何设计布置雷与排查…

蓝牙耳机什么牌子好?口碑最好的蓝牙耳机品牌排行

在现代除了手机或智能手机&#xff0c;人们生活中离不开的另一件事就是“耳机”&#xff0c;尤其是对于心中有音乐的人。那么市面上的蓝牙耳机五花八门&#xff0c;尤其是陆续上新的新品&#xff0c;哪个牌子更好呢&#xff1f;以下是笔者整理的几款口碑好的蓝牙耳机&#xff0…

欧拉角与旋转矩阵

目录1. 欧拉角&#xff11;.&#xff11;欧拉角的表示&#xff11;.&#xff12;内旋和外旋1.3 欧拉角的缺点2 欧拉角到旋转矩阵的表示3 值得注意的点4. 非常感谢您的阅读&#xff01;1. 欧拉角 &#xff11;.&#xff11;欧拉角的表示 我们想描述刚体在现实世界的旋转时&…

chromedriver依赖安装失败 解决办法

1.问题描述 在使用npm下载chromedriver依赖时报错&#xff1a; chromedriver2.27.2 install: node install.js2.解决办法 第一步&#xff1a;根据报错信息中的地址&#xff0c;手动下载 chromedriver 依赖。 https://cdn.npmmirror.com/binaries/chromedriver/2.27/chromedr…

VOLTE呼叫流程介绍

VOLTE呼叫流程介绍&#xff1a; A和B均在IDLE模式&#xff0c;A用户&#xff08;主叫Caller&#xff09;呼叫B用户&#xff08;被叫Callee&#xff09;流程图&#xff1b; A、B均在MME附着&#xff0c;已在AS服务器注册&#xff1b; VOLTE呼叫业务流程 VOLTE呼叫业务流程 VOL…

[附源码]java毕业设计天悦酒店管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

java高级篇 Mybatis-Plus

目录 一、Mybatis-Plus概述 二、特性 三、快速搭建Mybatis-Plus框架 3.1 创建数据库以及表结构和数据 3.2 创建一个springboot工程并引入相关的依赖 3.3 修改配置文件 3.4 创建实体类 3.5 创建dao接口 3.6 为dao接口生成带来实现类 3.7 测试 四、使用mp完成crud操作 4.1 添加…

Linux 基础IO

目录 一、复习C文件IO相关操作 示例代码 fopen的打开模式 C标准库默认打开的三个输入输出流 理解当前路径 二、认识文件相关系统调用接口 示例代码 open函数简介 三、文件描述符 初步认识... 文件描述符的本质&#xff1a; 三个默认打开的文件 文件描述符的分配规则…

SSH客户端工具MobaXterm

前言 SSH客户端远程连接服务器的有xshell(xmanager套件下)&#xff0c;需要收费&#xff0c;也可以通过一些和谐的方式使用。 但是有时候&#xff0c;我们需要使用光明正大的软件SSH到远程服务器&#xff0c;MobaXterm家庭版可以正常的使用。 其他产品&#xff1a; SecureCRT&…

任意代码执行漏洞复现

漏洞简介 在 PostgreSQL 数据库的 jdbc 驱动程序中发现一个安全漏洞。当攻击者控制 jdbc url 或者属性时&#xff0c;使用 PostgreSQL 数据库的系统将受到攻击。 pgjdbc 根据通过 authenticationPluginClassName、sslhostnameverifier、socketFactory 、sslfactory、sslpasswo…

021_SSSS_Diffusion Models Already Have a Semantic Latent Space

Diffusion Models Already Have a Semantic Latent Space 1. Introduction 本文指出&#xff0c;现有的Diffusion模型可以在不同的领域有出色的表现&#xff0c;但是缺少可以控制其生成过程的语义隐空间&#xff08;Semantic Latent Sapce&#xff09;。本文提出了非对称的反…

C++模拟OpenGL库——图片处理及纹理系统(三):图片缩放操作:简单插值二次线性插值

目录 简单插值 二次线性插值 简单插值 如图&#xff0c;我们想把一张小图缩放成一张大图&#xff0c;自然的想法就是按照它们的长宽比例进行缩放&#xff08;zoomX&#xff09;。 但是问题也显而易见&#xff0c;在缩放的过程中&#xff0c;小图的像素并不能一一映射到大图的…

蜂巢能源冲刺科创板上市:拟募资150亿元,上半年收入37亿元

11月18日&#xff0c;蜂巢能源科技股份有限公司&#xff08;下称“蜂巢能源”&#xff09;在上海证券交易所递交招股书&#xff0c;准备在科创板上市。本次冲刺科创板上市&#xff0c;蜂巢能源计划募资150亿元&#xff0c;主要用于动力锂离子电池项目、研发中心建设项目等。 据…

Unity游戏Mod/插件制作教程02 - 开发环境准备

前言 虽然本教程的目标读者是有C#基础的玩家&#xff0c;但是作为流程&#xff0c;基础的开发软件部分我还是要记录一下。 安装VisualStudio VisualStudio是我们开发插件最重要的工具&#xff0c;也许你习惯其他开发.net的工具&#xff0c;但是免费的VisualStudio已经足够好用…

王道OS 1.1_1 操作系统的概念、功能和目标

王道OS 1.1_1 操作系统的概念、功能和目标 chap1 计算机系统概述 参考资料 B站王道考研操作系统概念 第9版 &#xff08;原书、译本&#xff09; 好久没有写博客总结整理和输出了&#xff0c;学习的惰性在一次次的考试周从零开始的经历中达到了巅峰&#xff0c;现在想重振旗鼓…

换工作有感

最近很长一段时间没有更新博客&#xff0c;更新关于vim相关的操作&#xff0c;主要是最近在忙于换工作的事情。其实本来我也没打算换工作的&#xff0c;主要是最近公司的一些骚操作让我觉得心里很不爽&#xff0c;所以一怒之下提出离职。 背景 先来说说这个事情的背景吧&#…

2022年 SecXOps 安全智能分析技术白皮书 附下载地址

近年来&#xff0c;互联网、大数据和人工智能 等技术都得到了飞速的发展&#xff0c;网络攻击的方法也越来越复杂&#xff0c;过去广泛、漫无目的的攻击威胁&#xff0c;在数年内迅速地转化为有目标、有组织、长期 潜伏的多阶段组合式高级可持续威胁&#xff08;Advanced Persi…