经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring Boot » 查看文章
SpringBoot项目启动后再请求远程接口的实现方式
来源:cnblogs  作者:欢醉  时间:2023/2/13 8:51:30  对本文有异议

场景

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

解决

一般会有两种实现方式:

实现ApplicationRunner接口

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

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

实现CommandLineRunner接口

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

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

原文链接:https://www.cnblogs.com/zhangs1986/p/17106871.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号