当前位置: 首页 > article >正文

SpringBoot集成OpenFeign,实现服务间的相互调用

SpringBoot集成OpenFeign,实现服务间的相互调用

文章目录

  • SpringBoot集成OpenFeign,实现服务间的相互调用
    • 一、实验准备与目标
    • 二、添加依赖
    • 三、写调用接口
    • 四、写controller层
    • 五、启动类注解
    • 六、结果

一、实验准备与目标

有业务模块business和跑批模块batch

business模块中设有test接口,内容如下:

@RestController
public class TestController {

    @GetMapping("/test")
    public String test(){
        return "test business";
    }

}

目标是在batch模块中调用business模块的test接口,以此模拟微服务环境下,不同服务之间相互调用的情况。

二、添加依赖

在调用模块中添加依赖,即在batch模块添加:

<!--远程调用openfeign-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--openfeign默认使用的是loadBalance的负载均衡器  -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-loadbalancer</artifactId>
        </dependency>

三、写调用接口

BusinessFeign.java:

 @FeignClient(name = "business", url = "http://127.0.0.1:8002")
public interface BusinessFeign {

    @GetMapping("/business/test")
    String hello();

}

注意要在business模块配置中申明该模块是business,这样微服务之间才能互相认识。

spring.application.name=business

四、写controller层

@RestController
public class TestController {

    private static final Logger LOG = LoggerFactory.getLogger(TestController.class);

    @Resource
    BusinessFeign businessFeign;

    @GetMapping("/test")
    public String hello() {
        String businessHello = businessFeign.hello();
        LOG.info(businessHello);
        return "Hello World! Batch! " + businessHello;
    }

}

五、启动类注解

batch模块启动类上添加注解:@EnableFeignClients("com.mystudy.train.batch.feign")
申明开启feign代理,告知SpringBoot哪里是feign代理。

六、结果

business模块中日志打印:
在这里插入图片描述
batch模块中日志打印:
在这里插入图片描述
由此可见,成功在batch模块中调用business模块的test接口,并返回数据结果。


http://www.kler.cn/a/517193.html

相关文章:

  • ThreeJs常用模块封装——加载进度条
  • 保健食品注册数据库<一键查询保健食品信息>
  • [C]基础8.详解操作符
  • 09_异步加载_单例模式_常量类配置_不可销毁
  • Vue3笔记——(二)
  • MySQL数据库批量插入包含uuid的数据
  • 正向代理(动态 IP 代理)和反向代理
  • 汽车钥匙发展史
  • Element修改表格结构样式集合(后续实时更新)
  • Spring Security框架简单搭建
  • 智能手机“混战”2025:谁将倒下而谁又将突围?
  • AI评估新范式:从性能至信任的转变
  • 【python写个可以运行的2048小游戏】
  • 分布式存储的技术选型之HDFS、Ceph、MinIO对比
  • css之多边形 clip-path
  • 使用Visual Studio Code配置C/C++开发环境的全面指南
  • 计算机网络三张表(ARP表、MAC表、路由表)总结
  • MATLAB中alphanumericsPattern函数用法
  • windows下部署安装 ELK,nginx,tomcat日志分析
  • 利用Java爬虫获取eBay商品详情:代码示例与教程
  • 解锁跨平台通信:Netty、Redis、MQ和WebSocket的奇妙融合
  • snippets router pinia axios mock
  • 【整理】js逆向工程
  • linux如何修改密码,要在CentOS 7系统中修改密码
  • 【Uniapp-Vue3】页面和路由API-navigateTo及页面栈getCurrentPages
  • VSCode+Continue实现AI辅助编程