首页 > 编程语言 >CommandLineRunner - Spring Boot应用程序启动后执行

CommandLineRunner - Spring Boot应用程序启动后执行

时间:2023-09-14 11:35:49浏览次数:48  
标签:11 INFO CommandLineRunner Spring 09 Boot 44263 main

在springboot启动的时候,有的时候需要做一些初始化或者预加载的事情。

springboot给我们提供了这样一个接口

CommandLineRunner

CommandLineRunner是一个接口,用于在Spring Boot应用程序启动后执行一些特定的任务或代码块。当应用程序启动完成后,Spring Boot会查找并执行实现了CommandLineRunner接口的Bean。

说白了,就是SpringBoot启动后,我立马想干的事,都可以往里写。

 

例如:

 

@Service
public class TestService {
   public void test() {
      System.out.println("Hello world");
   }
}

 

在启动类上,加上这么个玩意:

@SpringBootApplication
public class ErrorSpringApplication {

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

    @Bean
    CommandLineRunner lookupTestService(TestService testService) {
        return args -> {
            // 1、test接口
            testService.test();

        };
    }
}

 

启动一下:

2023-09-14 11:17:22.337  INFO 44263 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2023-09-14 11:17:22.346  INFO 44263 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2023-09-14 11:17:22.346  INFO 44263 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.78]
2023-09-14 11:17:22.478  INFO 44263 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2023-09-14 11:17:22.478  INFO 44263 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 942 ms
2023-09-14 11:17:22.858  INFO 44263 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2023-09-14 11:17:22.868  INFO 44263 --- [           main] c.e.error_spring.ErrorSpringApplication  : Started ErrorSpringApplication in 1.812 seconds (JVM running for 3.649)
Hello world

可以发现,SpringBoot启动后,自动加载了service的执行程序。

 

可以用来干啥:

1)代码调试

感觉偶尔还挺方便

2)、缓存预热

CommandLineRunner在应用程序启动后预热缓存,加载常用的数据到缓存中,提高应用程序的响应速度。

3)、任务初始化

使用CommandLineRunner来初始化和配置某些定时任务,确保它们在应用程序启动后立即开始运行。

 

标签:11,INFO,CommandLineRunner,Spring,09,Boot,44263,main
From: https://www.cnblogs.com/r1-12king/p/17702071.html

相关文章

  • SpringBoot单体用户登录校验
    一、概述要做一个有私有空间的单体的SpringBoot项目,用户的权限校验是必须得。需要指定哪些接口需要权限才能访问,哪些接口不需要权限就能访问。目标:1.用户登录、注册不需要权限校验,获取用户信息需要权限校验2.获取用户信息通过token来获取(从token中取......
  • 【Spring Bean的生命周期】
    SpringBean的生命周期SpringBean的生命周期分为四个阶段:实例化、属性赋值、初始化和销毁。实例化构造器实例化通过Java类的构造函数实例化Bean,利用Java反射机制,调用bean对应类的构造方法进行实例化。在XML文件中,可以使用标签的class属性指定要实例化的Bean类。当容器启动时,......
  • 【Spring boot】数据库依赖
    如果依赖库不存在,maven安装依赖库JDBC的依赖项:spring-jdbc<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.14</version></dependency>  MySQL连接的依赖项:mysql......
  • Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?
    前言:SpringBoot在Java生态中备受欢迎,它是一款基于Java构建的轻量级服务端框架,主要用于Web服务。SpringBoot的应用使得创建各类基于Spring的企业级应用变得异常简单。Node.js作为一种基于ChromeV8引擎的JavaScript运行时环境,在服务端上运行JavaScript代码。它以其独......
  • SpringMVC报错:HTTP Status 405 - JSPs only permit GET POST or HEAD
    错误描述如果项目是运行在Tomcat8及以上版本,浏览器发出的PUT请求和DELETE请求可以被页面控制器(Controller)成功接收到,但是返回JSP页面则会报HTTP405的错误提示:"消息JSP只允许GET、POST或HEAD。Jasper还允许OPTIONS"。原因分析原因是Tomcat按照JCP规范(JSP......
  • Spring - DI 依赖注入和 IoC 容器
    前言先理解DI依赖注入再理解Ioc容器更好,不应该先理解IoC容器再理解DI依赖注入。这两个东西必须要放在一起讲,但是又要分好顺序去理解。理解之前不能先看概念,非常地抽象,应该从“为什么”起理解。总而言之,这个两个东西的出现是为了降低程序的耦合度。DI依赖注入Java里......
  • springcloud相关面试题
    (目录)springcloud相关面试题springcloud中网关起什么作用在SpringCloud中,网关起到了路由和过滤的作用。路由:网关通过配置路由规则,将请求转发到不同的服务实例上。它可以根据请求的URL、请求的HTTP方法、请求的Header等信息,将请求路由到相应的服务实例上。通过网关,可以实现......
  • spring-websocket 简单使用
    之前自己基于netty实现了websocket协议,实现单聊以及群聊。这里记录下spring封装的spring-websocket使用方式。1.后端1.pom<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation......
  • springboot集成CAS客户端实现单点登录
    pom中引入依赖<!--cas--><dependency><groupId>org.jasig.cas.client</groupId><artifactId>cas-client-core</artifactId><version>3.6.2</version></dependen......
  • Spring MVC 教程,快速入门,深入分析
    SpringMVC教程,快速入门,深入分析资源下载:Spring_MVC_教程_快速入门_深入分析V1.1.pdfSpringMVC核心配置文件示例.rar 作者:赵磊博客:http://elf8848.iteye.com 目录一、前言二、springmvc核心类与接口三、springmvc 核心流程图四、springmvc DispatcherServlet......