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

springboot启动事件CommandLineRunner使用

什么是CommandRunner

CommandRunner是springboot启动完成时会调用的一个runner 启动参数会传递到这个runner 我们能用来做一些初始化工作和缓存预热等工作

ApplicationRunner VS CommandRunner?

这两个Runner作用一样 只是得到的启动参数格式不一样 前者是一个Argument对象 后者是参数字符串数组 功能更强大

使用方法

编写一个Runner类实现CommandRunner接口 重写run方法 runner被调用时run方法会被执行 Runner类需要注册成一个组件被spring管理

@Component
public class CommandLineRunnerImpl implements CommandLineRunner {
    private static final Logger log = LoggerFactory.getLogger(CommandLineRunnerImpl.class);

    private Environment environment;

    public CommandLineRunnerImpl(Environment environment) {
        this.environment = environment;
    }

    @Override
    public void run(String... args) throws Exception {
        log.info("command line args: {}", Arrays.toString(args)); // [--spring.profiles.active=prod, --server.port=9091]
        log.info("command line environment: {}", environment.getActiveProfiles()); // prod
        log.info("command line environment: {}", environment.getProperty("server.port")); // 9091
    }
}

修改启动的configuration 加入启动参数:
在这里插入图片描述
启动项目后 控制台输出:
在这里插入图片描述
除了从run方法参数获取还可以通过environment对象的getProperty获取

http://www.dtcms.com/a/92041.html

相关文章:

  • RocketMQ 使用手册
  • 排序--快排--挖坑法
  • 电机控制 | 仿真分析:基于脉冲高频注入的永磁同步电机无感控制
  • doris:容灾管理概览
  • es新增运算符
  • 小程序实现瀑布流布局
  • 【MySQL】用户账户、角色、口令、PAM
  • 【miniconda】centos7安装miniconda
  • 【装饰器】【python】【@wraps详解】装饰器核心问题:元数据丢失解决,以及原理
  • 贪心算法经典应用:最优答疑调度策略详解与Python实现
  • ngx_rtmp_flv_module.c — FLV文件处理模块设计与分析
  • JavaScript基础-常用的键盘事件
  • 第三课:Stable Diffusion图生图入门及应用
  • 跨语言微服务架构(Java、Python)——“API中台”
  • SQL小菜之TOP N查找问题
  • 【SUNO】【AI作词】【提示词】
  • 徘徊检测:视觉分析技术的安防新方向
  • ROS2 humble .launch.py启动文件编写
  • QML输入控件: Dial(1)
  • OLED 播放 GIF图片 Adruino
  • QT高效文件I/O编程--实用指南与最佳实践
  • 基于Spring Boot的网上购物商城系统的设计与实现(LW+源码+讲解)
  • c++:封装红黑树实现map与set
  • NVM安装速通使用手册(Windows版)NVM管理node版本命令手册 NVM使用手册
  • openmmlab介绍 一下
  • 大模型在原发性肺脓肿预测及治疗方案制定中的应用研究
  • Nuxt出现Error: Failed to download template from registry
  • 347 前k个高频元素
  • cli命令编写
  • OpenGL(三)管线介绍和三角形绘制