`

Springboot 项目启动后执行某些自定义代码

阅读更多
Springboot给我们提供了两种“开机启动”某些方法的方式:ApplicationRunner和CommandLineRunner。

这两种方法提供的目的是为了满足,在项目启动的时候立刻执行某些方法。我们可以通过实现ApplicationRunner和CommandLineRunner,来实现,他们都是在SpringApplication 执行之后开始执行的。

CommandLineRunner接口可以用来接收字符串数组的命令行参数,ApplicationRunner 是使用ApplicationArguments 用来接收参数的

 

代码示例

@Component//被spring容器管理
@Order(1)//如果多个自定义ApplicationRunner,用来标明执行顺序
public class MyApplicationRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments applicationArguments) throws Exception {
        System.out.println("-------------->" + "项目启动,now=" + new Date());
        myTimer();
    }

    public static void myTimer(){
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("------定时任务--------");
            }
        }, 0, 1000);
    }
}

 

执行结果

2018-02-08 14:10:16.490  INFO 10236 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8081 (http)
-------------->项目启动,now=Thu Feb 08 14:10:16 CST 2018
------定时任务--------
2018-02-08 14:10:16.497  INFO 10236 --- [           main] com.mlxs.springboot01.web.MainApp        : Started MainApp in 5.595 seconds (JVM running for 6.334)
------定时任务--------
------定时任务--------
------定时任务--------
------定时任务--------
------定时任务--------
------定时任务--------

 

分享到:
评论

相关推荐

    非maven springboot项目

    3. **创建主类**:在Spring Boot项目中,主类是启动应用的入口点,通常包含`@SpringBootApplication`注解。我们需要创建这样一个类,并在其中包含`main`方法来启动Spring Boot应用。 4. **配置运行脚本**:非Maven...

    springboot启动时执行任务的设置.docx

    这两个接口都是Spring框架的一部分,允许我们在应用启动后立即运行自定义代码。 `CommandLineRunner`接口只有一个方法`run(String... args)`,用于处理命令行参数。当你需要处理这些参数时,可以选择这个接口。例如...

    springboot启动时执行任务的设置.pdf

    在Spring Boot应用中,我们有时需要在项目启动时自动执行某些任务,比如初始化数据库、加载配置等。Spring Boot为此提供了一种优雅的方式来实现这个需求,那就是通过`ApplicationRunner`和`CommandLineRunner`接口。...

    springboot拦截器代码

    在上述代码中,`addPathPatterns`定义了拦截器将拦截的URL路径,而`excludePathPatterns`则排除了某些特定的URL,使其不会被拦截。 在实际应用中,我们可以利用拦截器进行权限验证、日志记录、计时分析等多种功能。...

    SpringBoot中配置为开发模式代码修改后不用重新运行示例源码

    在Spring Boot应用中,开发模式(Development Mode)是一种优化开发者体验的功能,它允许你在修改代码后无需重新启动应用即可看到更改的效果。这个特性极大地提高了开发效率,减少了等待应用重启的时间。下面将详细...

    springboot源码思维导图

    1. 自动配置:SpringBoot通过`@EnableAutoConfiguration`注解开启自动配置,根据项目中的依赖自动配置Bean。它基于`@Conditional`注解,只有在满足特定条件(如类路径中存在某个文件或类)时才会生效。 2.起步依赖...

    SpringBoot权威指南

    - **自定义Banner**:介绍了如何在应用启动时显示自定义的启动画面。 - **自定义SpringApplication**:讲解了如何扩展SpringApplication以适应特殊需求。 - **流畅的构建API**:解释了SpringApplication提供的...

    SpringBoot-activiti5.22.rar

    SpringBoot与Activiti5.22的整合是一...通过这个DEMO,开发者可以学习到如何在SpringBoot项目中集成工作流引擎,设计和执行流程,以及如何进行复杂的任务分配。这为构建面向业务流程的系统提供了强大的工具和实践指导。

    customize springboot-starter.rar

    - 初始化器:可能有`ApplicationListener`监听`ApplicationReadyEvent`,用于在Spring Boot应用启动完成后执行某些任务。 4. **测试文件**: 测试文件用于验证自定义starter的功能。可能包含单元测试(JUnit)和...

    springboot基础讲解

    - **作为一个打包后的应用运行**:将项目打包成可执行的 JAR 或 WAR 文件。 - **使用 Maven 插件运行**:通过 Maven 命令启动应用程序。 - **使用 Gradle 插件运行**:使用 Gradle 命令启动应用程序。 - **热...

    spring boot 监听容器启动代码实例

    Spring Boot 框架中,监听容器启动代码实例是一种非常有用的技术,可以在 Spring 容器初始化完成后执行某些操作。在本文中,我们将通过示例代码详细介绍如何使用自定义 ApplicationListener 来实现监听容器启动代码...

    springboot参考指南中文word文档

    - **自定义Banner**:可以在应用启动时显示自定义的启动画面。 - **自定义SpringApplication**:扩展SpringApplication类来自定义启动逻辑。 - **流畅的构建API**:提供了一个简洁的方法来构建Spring应用。 - **...

    springboot-quartz.zip

    SpringBoot提供了自动配置的支持,但在某些情况下,可能需要自定义配置。可以在`application.properties`或`application.yml`中设置Quartz的相关属性,如数据库连接、线程池大小等。例如: ```properties # ...

    SpringBoot

    - **继承启动器父POM**:通过继承Spring Boot提供的父POM简化项目配置。 - **不使用父POM**:在某些情况下可能需要跳过父POM,这里提供了相应的配置方式。 - **更改Java版本**:说明如何在项目中指定不同的Java...

    springboot整合测试

    SpringBoot整合测试是开发过程中必不可少的一环,它能确保代码的质量和系统的稳定性。Spring Boot以其简洁的配置和快速启动的特点,极大地简化了Java应用的开发。然而,即使如此,我们仍需要通过有效的测试来验证...

    SpringBoot整合Sharding-JDBC,实现从数据库加载sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换

    通常,静态配置的数据源在项目启动后就固定不变。但在某些场景下,如云环境或多租户系统,我们可能需要根据业务需求动态加载数据源。这可以通过监听数据库表的变化,获取最新的数据源配置,然后通过Spring的`...

    SpringBoot集成Mybatis的xml

    在`pom.xml`文件中添加MyBatis和其Spring Boot启动器的依赖项: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-data-jpa <groupId>org.mybatis.spring.boot <artifactId>...

    springboot实现学生管理系统(注册注销,拦截器,管理系统内部数据记录修改)

    在Spring MVC中,拦截器用于在请求到达控制器之前或之后执行某些操作,如日志记录、权限验证、性能监控等。在这个系统中,拦截器可能用于检查用户登录状态,或者记录每次请求的信息。 6. **注册与注销功能**: ...

Global site tag (gtag.js) - Google Analytics