`
sunbin
  • 浏览: 353334 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring Boot启动加载数据CommandLineRunner(转)

 
阅读更多

实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求 
为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。

很简单,只需要一个类就可以,无需其他配置。 
创建实现接口 com.kfit.runner.CommandLineRunner 的类

package com.kfit.runner;

 

import org.springframework.boot.CommandLineRunner;

import org.springframework.stereotype.Component;

 

/**

 * 服务启动执行

 *

 * @author   Angel(QQ:412887952)

 */

@Component

publicclassMyStartupRunner1implementsCommandLineRunner {

 

    @Override

    publicvoid run(String... args) throws Exception {

        System.out.println(">>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作<<<<<<<<<<<<<");

    }

 

}

 

 

Spring Boot应用程序在启动后,会遍历CommandLineRunner接口的实例并运行它们的run方法。也可以利用@Order注解(或者实现Order接口)来规定所有CommandLineRunner实例的运行顺序。

如下我们使用@Order 注解来定义执行顺序。

package com.kfit.runner;

 

import org.springframework.boot.CommandLineRunner;

import org.springframework.core.annotation.Order;

import org.springframework.stereotype.Component;

 

/**

 * 服务启动执行

 *

 * @author   Angel(QQ:412887952)

 */

@Component

@Order(value=2)

publicclassMyStartupRunner1implementsCommandLineRunner {

 

    @Override

    publicvoid run(String... args) throws Exception {

        System.out.println(">>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作 11111111 <<<<<<<<<<<<<");

    }

 

}

 

 

package com.kfit.runner;

 

import org.springframework.boot.CommandLineRunner;

import org.springframework.core.annotation.Order;

import org.springframework.stereotype.Component;

 

/**

 * 服务启动执行

 *

 * @author   Angel(QQ:412887952)

 */

@Component

@Order(value=1)

publicclassMyStartupRunner2implementsCommandLineRunner {

 

    @Override

    publicvoid run(String... args) throws Exception {

        System.out.println(">>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作 22222222 <<<<<<<<<<<<<");

    }

 

}

 

启动程序后,控制台输出结果为:

>>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作 22222222 <<<<<<<<<<<<<

>>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作 11111111 <<<<<<<<<<<<<

根据控制台结果可判断,@Order 注解的执行优先级是按value值从小到大顺序。

 

@Override

    publicvoid run(String... argsthrows Exception {

                System.out.println(Arrays.asList(args));

        System.out.println(">>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作11111111<<<<<<<<<<<<<");

    }

 

这里的args就是程序启动的时候进行设置的:

 

SpringApplication.run(App.class, new String[]{"hello,","林峰"});

 

这里为了做演示,配置为固定值了,其实直接接收main中的args即可,那么在运行的时候,进行配置即可。

 

题外话:

eclipse中给java应用传args参数的方法如下:
1、先写好Java代码,比如文件名为IntArrqy.java;
2、在工具栏或菜单上点run as下边有个Run Configuration;
3、在弹出窗口点选第二个标签arguments;
4、把你想输入的参数写在program argumenst就可以了,多个参数使用空格隔开。
完成后点run即可通过运行结果看到参数使用情况了。

分享到:
评论

相关推荐

    Spring Boot 启动加载数据 CommandLineRunner的使用

    Spring Boot 启动加载数据 CommandLineRunner 的使用 在 Spring Boot 应用程序中,有时我们需要在服务启动时加载一些数据或进行一些操作。为了解决这个问题,Spring Boot 提供了一个方法,即通过实现 CommandLine...

    从零开始学Spring Boot

    1.26 Spring Boot启动加载数据CommandLineRunner 1.27 Spring Boot环境变量读取和属性对象的绑定 1.28 Spring Boot使用自定义的properties 1.29 改变自动扫描的包 1.30 Spring Boot Junit单元测试 1.31 SpringBoot...

    spring boot启动加载数据原理分析

    Spring Boot为此提供了一个简洁的机制,即通过实现`CommandLineRunner`或`ApplicationRunner`接口来实现在应用启动时运行的自定义代码。本文将深入探讨这两个接口的工作原理和它们之间的区别。 ### CommandLine...

    Spring Boot 学习笔记完整教程.pdf

    - 系统启动任务:Spring Boot提供了CommandLineRunner接口,允许开发者在应用启动时执行特定的任务。 - 集成JSP、Servlet、Filter和Listener:通过配置和特定的类来支持这些Web组件。 - 拦截器和任务调度:提供了...

    spring boot 中文文档

    Spring Boot特性一节讲解了如何使用ApplicationRunner或CommandLineRunner来运行特定的代码块,以及如何处理Web相关的操作。 文档中还提供了后续阅读的资源,以便开发者继续深入学习Spring Boot的高级主题,如安全...

    Spring Boot如何使用HikariCP连接池详解

    import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import javax.sql.DataSource; ...

    Spring Boot启动流程.doc

    同时,开发者还可以通过实现`CommandLineRunner`或`ApplicationRunner`接口来自定义启动时的行为,这两个接口提供了在应用程序启动后运行自定义代码的机会。 在整个启动流程中,Spring Boot还负责处理日志初始化、...

    Spring Boot非Web项目运行的方法

    这是因为Spring Boot应用程序在启动后,会遍历CommandLineRunner接口的实例并运行它们的run方法。如果我们不做任何处理,主线程就会退出,导致应用程序终止。 为了解决这个问题,我们可以使用Spring Boot提供的...

    springboot CommandLineRunner接口实现自动任务加载功能

    Spring Boot CommandLineRunner接口是Spring Boot框架中的一种自动任务加载机制,通过实现CommandLineRunner接口,可以在项目启动后自动执行特定的任务。本文将详细介绍Spring Boot CommandLineRunner接口的实现和...

    SpringBoot项目启动时实现调用一次初始化方法.docx

    在Spring Boot应用中,我们经常需要在项目启动时执行一次初始化操作,比如加载配置、预设数据等。这里我们将详细探讨如何实现这个需求,主要涉及`@PostConstruct`注解、`CommandLineRunner`接口以及在启动类中直接...

    spring boot 例子代码

    此外,还可以使用 `CommandLineRunner` 或 `ApplicationRunner` 接口,在应用启动后执行特定的初始化任务。 `BootTwo` 可能还涉及了 Spring Boot 的配置文件(application.properties 或 application.yml),在这里...

    Spring Boot中文文档(基于1.4.1翻译)

    - 在Spring Boot中,通过实现`ApplicationRunner`或`CommandLineRunner`接口,可以在应用启动时执行额外的代码。 #### 9. 了解Spring Boot - 通过阅读本文档,可以更好地理解Spring Boot的核心概念、如何安装、创建...

    spring boot应用启动原理分析.docx

    6. **应用运行**:调用 `ApplicationRunner` 或 `CommandLineRunner` 接口的实现方法,执行用户定义的启动逻辑。 在 Spring Boot 中,如果使用了 `spring-boot-starter-web`,它会自动嵌入 Tomcat 容器。`...

    Spring Boot启动及退出加载项的方法

    在 Spring Boot 中,可以通过实现 `ApplicationRunner` 或 `CommandLineRunner` 接口来执行启动加载项,这两个接口都实现了一个工作方式相同的 `run` 方法,该方法仅会在 `SpringApplication.run(...)` 前执行。...

    spring项目启动加载类到静态服务类中的三种方式.zip

    本教程将详细阐述三种不同的方式,将Spring项目启动时加载的类集成到静态服务类中。 1. **使用`ApplicationContextAware`接口** `ApplicationContextAware`是Spring提供的一个接口,它允许我们在类中注入...

    Spring Boot:启动原理解析.docx

    在深入探讨Spring Boot启动原理之前,首先需要理解的是Spring Boot的核心注解——`@SpringBootApplication`。这个注解是一个复合注解,包含了`@Configuration`、`@EnableAutoConfiguration`和`@ComponentScan`这三个...

    详解Spring Boot 项目启动时执行特定方法

    `CommandLineRunner`接口是用于在Spring Boot应用启动后执行一次性任务的,它接受一个`String... args`参数,这些参数是从命令行传递给应用的。例如: ```java import org.springframework.boot.CommandLineRunner;...

    Spring Boot参考指南.pdf

    - **使用ApplicationRunner或CommandLineRunner**:介绍两种运行启动任务的方式。 - **Application退出**:说明如何优雅地关闭Spring Boot应用。 - **Admin特性**:介绍Spring Boot提供的一些管理员级别的特性。 ...

    Spring Boot启动时调用自己的非web逻辑

    Spring Boot启动时调用自己的非WEB逻辑 ...我们可以通过实现CommandLineRunner接口来实现非WEB逻辑的调用,在Spring Boot应用程序启动时执行这些逻辑。这些逻辑可以是数据库初始化、缓存加载、定时任务等等。

    Spring Boot启动过程全面解析(三)

    在Spring Boot应用程序中,ApplicationRunner和CommandLineRunner接口是两个非常重要的接口,它们可以帮助我们在应用程序启动过程中执行一些初始化操作或加载配置文件。 ApplicationRunner接口是Spring Boot提供的...

Global site tag (gtag.js) - Google Analytics