首页 > 其他分享 >SpringBoot项目启动后再请求远程接口的实现方式

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

时间:2023-02-13 08:55:49浏览次数:46  
标签:run SpringBoot 启动 接口 远程 ApplicationRunner public

场景

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

解决

一般会有两种实现方式:

实现ApplicationRunner接口

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

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

实现CommandLineRunner接口

@Component
public class CommandLineRunnerBean implements CommandLineRunner {
    @Override
    public void run(String... args) {
        String strArgs = Arrays.stream(args).collect(Collectors.joining("|"));
        System.out.println("SpringBoot项目启动后执行arguments:" + strArgs); 
}
}

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

标签:run,SpringBoot,启动,接口,远程,ApplicationRunner,public
From: https://www.cnblogs.com/zhangs1986/p/17106871.html

相关文章

  • 接口
    接口是引用数据类型,一个类可实现多个接口一接口的定义1接口声明:关键字interface2接口体只包含常量和抽象方法接口体中只进行方法的声明,不需提供方法的实现,用分号......
  • Springboot项目配置SSL问题
    项目写一半想发布看一眼,是微信小程序的项目,一切都准备好了结果没有发布成功。第一次发布小程序,才知道微信小程序必须要https协议的域名才可以。发布小程序大致流程编......
  • springboot内置的数据源,持久化技术和数据库管理工具
    我们之前用的是Druid,mybatis,mysql:   现在看看springboot内置的数据源:   内置的持久化技术jdbcTemplate:   使用这个jdbcTemplate需要导入jar包:  ......
  • 如何理解SpringBoot中的Starter
    starter可以使我们少定义一些配置比如我们使用spring+springMvc进行开发时,如果需要引入mybatis等框架,还需要再去xml中定义mybatis需要的bean。使用starter可以让我们开箱......
  • Spring、SpringMVC、SpringBoot有什么区别
    Spring是一个IOC容器,用来存放管理Bean,使用依赖注入实现控制反转。也是一个桥梁,可以很方便地整合各种框架。还提供了AOP机制,弥补了OOP的代码重复问题,更方便将不同类不同方法......
  • springboot 多数据源 实例(sybase、mysql数据库)(下)
    接下来见证奇迹的时刻:首先要借鉴yandype这位大神的总结的代码:说明:springboot2.3.x+mybatisplus+ druid +sybase+mysql多数据源整合1、项目依赖<?xmlvers......
  • springboot 多数据源 实例(sybase、mysql数据库)(上)
    最近项目需要用到sybase(sqlanywhere)、mysql数据库两边数据交互。由于之前对sybase数据库一点不懂踩了许多坑特意记下:连接sybase客户端需要用到 SQLCentral1......
  • Java的接口
    介绍接口的基本使用,对接口多态,及继承类和实现接口时产生方法冲突和常量冲突分析Author:MsuenbDate:2023-02-11接口概述多态的使用前提必须是"继承"。而类继承有如......
  • 妙用Java 8中的 Function接口,消灭if...else
    在开发过程中经常会使用 if...else...进行判断抛出异常、分支处理等操作。这些 if...else...充斥在代码中严重影响了代码代码的美观,这时我们可以利用Java8的Function接......
  • SpringBoot 时间格式化的 5 种实现方法!
    在我们日常工作中,时间格式化是一件经常遇到的事儿,所以本文我们就来盘点一下SpringBoot中时间格式化的几种方法。时间问题演示为了方便演示,我写了一个简单SpringBoot......