User-Profile-Image
hankin
  • 5
  • Java
  • Kotlin
  • Spring
  • Web
  • SQL
  • MegaData
  • More
  • Experience
  • Enamiĝu al vi
  • 分类
    • Zuul
    • Zookeeper
    • XML
    • WebSocket
    • Web Notes
    • Web
    • Vue
    • Thymeleaf
    • SQL Server
    • SQL Notes
    • SQL
    • SpringSecurity
    • SpringMVC
    • SpringJPA
    • SpringCloud
    • SpringBoot
    • Spring Notes
    • Spring
    • Servlet
    • Ribbon
    • Redis
    • RabbitMQ
    • Python
    • PostgreSQL
    • OAuth2
    • NOSQL
    • Netty
    • MySQL
    • MyBatis
    • More
    • MinIO
    • MegaData
    • Maven
    • LoadBalancer
    • Kotlin Notes
    • Kotlin
    • Kafka
    • jQuery
    • JavaScript
    • Java Notes
    • Java
    • Hystrix
    • Git
    • Gateway
    • Freemarker
    • Feign
    • Eureka
    • ElasticSearch
    • Docker
    • Consul
    • Ajax
    • ActiveMQ
  • 页面
    • 归档
    • 摘要
    • 杂图
    • 问题随笔
  • 友链
    • Spring Cloud Alibaba
    • Spring Cloud Alibaba - 指南
    • Spring Cloud
    • Nacos
    • Docker
    • ElasticSearch
    • Kotlin中文版
    • Kotlin易百
    • KotlinWeb3
    • KotlinNhooo
    • 前端开源搜索
    • Ktorm ORM
    • Ktorm-KSP
    • Ebean ORM
    • Maven
    • 江南一点雨
    • 江南国际站
    • 设计模式
    • 熊猫大佬
    • java学习
    • kotlin函数查询
    • Istio 服务网格
    • istio
    • Ktor 异步 Web 框架
    • PostGis
    • kuangstudy
    • 源码地图
    • it教程吧
    • Arthas-JVM调优
    • Electron
    • bugstack虫洞栈
    • github大佬宝典
    • Sa-Token
    • 前端技术胖
    • bennyhuo-Kt大佬
    • Rickiyang博客
    • 李大辉大佬博客
    • KOIN
    • SQLDelight
    • Exposed-Kt-ORM
    • Javalin—Web 框架
    • http4k—HTTP包
    • 爱威尔大佬
    • 小土豆
    • 小胖哥安全框架
    • 负雪明烛刷题
    • Kotlin-FP-Arrow
    • Lua参考手册
    • 美团文章
    • Java 全栈知识体系
    • 尼恩架构师学习
    • 现代 JavaScript 教程
    • GO相关文档
    • Go学习导航
    • GoCN社区
    • GO极客兔兔-案例
    • 讯飞星火GPT
    • Hollis博客
    • PostgreSQL德哥
    • 优质博客推荐
    • 半兽人大佬
    • 系列教程
    • PostgreSQL文章
    • 云原生资料库
    • 并发博客大佬
Help?

Please contact us on our email for need any support

Support
    首页   ›   Spring   ›   SpringBoot   ›   正文
SpringBoot

SpringBoot—CommandLineRunner或者ApplicationRunner接口(开机自启)

2020-03-17 22:03:50
714  0 1
参考目录 隐藏
1) 1.CommandLineRunner
2) 2.ApplicationRunner

阅读完需:约 2 分钟

1.CommandLineRunner

在使用SpringBoot构建项目时,我们通常有一些预先数据的加载。那么SpringBoot提供了一个简单的方式来实现:

CommandLineRunner、ApplicationRunner 接口是在容器启动成功后的最后一步回调(类似开机自启动)。

我们先来看看 CommandLineRunner 的简单创建:

只需要创建一个MycommandLineRuner文件来测试的,这里创建连个文件主要是用来展示 @Order 这个注解的作用(指定优先级)

@Component
@Order(100)//优先级,数字越大越低
public class MyCommandLineRunner2 implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("k2:"+ Arrays.toString(args));
    }
}

在这个run(String… args)方法里的args是启动类里面的args

@SpringBootApplication
public class CommandlierunnerApplication {

    public static void main(String[] args) {
        SpringApplication.run(CommandlierunnerApplication.class, args);
    }

}

创建好后就是写入初始化参数了,我们可以在这里写入自己想要的参数:

结果:

2.ApplicationRunner

用法和前面的一样唯一不一样的地方是这个接口多了很多的方法

@Component
@Order(2)
public class MyApplicationRuner02 implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
            String[] sourceArgs=args.getSourceArgs();//获取启动的所有参数
            System.out.println("sourceArgs"+ Arrays.toString(sourceArgs));
            List<String> nonOptionArgs = args.getNonOptionArgs();
            System.out.println("nonOptionArgs"+nonOptionArgs);
            Set<String> optionNames = args.getOptionNames();
            System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>");
            for(String optionName : optionNames){
                System.out.println(optionName+":"+args.getOptionValues(optionName));
            }
            System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>结束02");
    }
}

两个文件的内容是一样的,不一样的地方再@Order(2)优先级

结果:

ApplicationArguments 类一个有五个方法,如下所示:

  • getSourceArgs() 获取参数源
  • getOptionNames() 获取所有参数名称
  • containsOption(String name) 判断是否包含指定名称的参数
  • getOptionValues(String name) 根据参数名称来获取指定的参数
  • getNonOptionArgs() 获取不是参数的配置项

如本文“对您有用”,欢迎随意打赏作者,让我们坚持创作!

1 打赏
Enamiĝu al vi
不要为明天忧虑.因为明天自有明天的忧虑.一天的难处一天当就够了。
543文章 68评论 294点赞 593874浏览

随机文章
Spring笔记15—声明式事务
5年前
SpringMVC笔记1—简介
5年前
MyBatis笔记—简介
5年前
SpringMVC笔记—数据显示到前端(补充)
5年前
Kotlin-类型进阶—枚举类(二十五)
4年前
博客统计
  • 日志总数:543 篇
  • 评论数目:68 条
  • 建站日期:2020-03-06
  • 运行天数:1927 天
  • 标签总数:23 个
  • 最后更新:2024-12-20
Copyright © 2025 网站备案号: 浙ICP备20017730号 身体没有灵魂是死的,信心没有行为也是死的。
主页
页面
  • 归档
  • 摘要
  • 杂图
  • 问题随笔
博主
Enamiĝu al vi
Enamiĝu al vi 管理员
To be, or not to be
543 文章 68 评论 593874 浏览
测试
测试
看板娘
赞赏作者

请通过微信、支付宝 APP 扫一扫

感谢您对作者的支持!

 支付宝 微信支付