前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot项目启动后再请求远程接口的实现方式

SpringBoot项目启动后再请求远程接口的实现方式

作者头像
欢醉
发布2023-03-01 14:02:24
7460
发布2023-03-01 14:02:24
举报
文章被收录于专栏:james大数据架构james大数据架构

场景

  有一个SpringBoot项目需要在启动后请求另一个远程服务拿取配置,而不是加载过程中去请求,可能会出现类没有实例化的场景,因此需要实现项目完全启动后再进行请求的场景。

解决

一般会有两种实现方式:

实现ApplicationRunner接口

代码语言:javascript
复制
@Component
public class ConsumerRunner implements ApplicationRunner{
    @Override
    public void run(ApplicationArgumers args) throws Exception{
        //逻辑
        System.out.println("SpringBoot项目启动后执行");
    }
}

  若有多个代码段需要执行,可用@Order注解设置执行的顺序,值越小越先执行添加如@Order(value=1)

实现CommandLineRunner接口

代码语言:javascript
复制
@Component
public class CommandLineRunnerBean implements CommandLineRunner {
    @Override
    public void run(String... args) {
        String strArgs = Arrays.stream(args).collect(Collectors.joining("|"));

  不同之处在于CommandLineRunner接口的run()方法接收String数组作为参数,即是最原始的参数,没有做任何处理;而ApplicationRunner接口的run()方法接收ApplicationArguments对象作为参数,是对原始参数做了进一步的封装。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 场景
  • 解决
    • 实现ApplicationRunner接口
      • 实现CommandLineRunner接口
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档