- Spring Boot 教程
- Spring Boot - 首页
- Spring Boot - 简介
- Spring Boot - 快速入门
- Spring Boot - 引导
- Spring Tool Suite
- Spring Boot - Tomcat 部署
- Spring Boot - 构建系统
- Spring Boot - 代码结构
- Spring Bean & 依赖注入
- Spring Boot - 运行器
- Spring Boot - 启动器
- Spring Boot - 应用程序属性
- Spring Boot - 配置
- Spring Boot - 注解
- Spring Boot - 日志记录
- 构建 RESTful Web 服务
- Spring Boot - 异常处理
- Spring Boot - 拦截器
- Spring Boot - Servlet 过滤器
- Spring Boot - Tomcat 端口号
- Spring Boot - Rest 模板
- Spring Boot - 文件处理
- Spring Boot - 服务组件
- Spring Boot - Thymeleaf
- 使用 RESTful Web 服务
- Spring Boot - CORS 支持
- Spring Boot - 国际化
- Spring Boot - 调度
- Spring Boot - 启用 HTTPS
- Spring Boot - Eureka 服务器
- 使用 Eureka 注册服务
- 网关代理服务器和路由
- Spring Cloud 配置服务器
- Spring Cloud 配置客户端
- Spring Boot - 执行器
- Spring Boot - 管理服务器
- Spring Boot - 管理客户端
- Spring Boot - 启用 Swagger2
- Spring Boot - 使用 SpringDoc OpenAPI
- Spring Boot - 创建 Docker 镜像
- 跟踪微服务日志
- Spring Boot - Flyway 数据库
- Spring Boot - 发送电子邮件
- Spring Boot - Hystrix
- Spring Boot - WebSocket
- Spring Boot - 批处理服务
- Spring Boot - Apache Kafka
- Spring Boot - Twilio
- Spring Boot - 单元测试用例
- Rest Controller 单元测试
- Spring Boot - 数据库处理
- 保护 Web 应用程序
- Spring Boot - 使用 JWT 的 OAuth2
- Spring Boot - Google Cloud Platform
- Spring Boot - Google OAuth2 登录
- Spring Boot 资源
- Spring Boot - 快速指南
- Spring Boot - 有用资源
- Spring Boot - 讨论
Spring Boot - 运行器
Application Runner 和 Command Line Runner 接口允许您在 Spring Boot 应用程序启动后执行代码。您可以使用这些接口在应用程序启动后立即执行任何操作。本章详细介绍了它们。
Application Runner
Application Runner 是一个用于在 Spring Boot 应用程序启动后执行代码的接口。下面的示例显示了如何在主类文件上实现 Application Runner 接口。
DemoApplication.java
package com.tutorialspoint.demo;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication implements ApplicationRunner {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
public void run(ApplicationArguments arg0) throws Exception {
System.out.println("Hello World from Application Runner");
}
}
控制台输出
现在,如果您观察下面的控制台窗口输出Hello World from Application Runner,则 println 语句在 Tomcat 启动后执行。
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ [32m :: Spring Boot :: [39m [2m (v3.3.3)[0;39m [2m2024-09-04T12:05:41.902+05:30[0;39m [32m INFO[0;39m [35m12304[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mc.tutorialspoint.demo.DemoApplication [0;39m [2m:[0;39m Starting DemoApplication using Java 21.0.3 with PID 12304 (E:\Dev\demo\target\classes started by Tutorialspoint in E:\Dev\demo) [2m2024-09-04T12:05:41.905+05:30[0;39m [32m INFO[0;39m [35m12304[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mc.tutorialspoint.demo.DemoApplication [0;39m [2m:[0;39m No active profile set, falling back to 1 default profile: "default" [2m2024-09-04T12:05:43.427+05:30[0;39m [32m INFO[0;39m [35m12304[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat initialized with port 8080 (http) [2m2024-09-04T12:05:43.454+05:30[0;39m [32m INFO[0;39m [35m12304[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardService [0;39m [2m:[0;39m Starting service [Tomcat] [2m2024-09-04T12:05:43.454+05:30[0;39m [32m INFO[0;39m [35m12304[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardEngine [0;39m [2m:[0;39m Starting Servlet engine: [Apache Tomcat/10.1.28] [2m2024-09-04T12:05:43.528+05:30[0;39m [32m INFO[0;39m [35m12304[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.a.c.c.C.[Tomcat].[localhost].[/] [0;39m [2m:[0;39m Initializing Spring embedded WebApplicationContext [2m2024-09-04T12:05:43.529+05:30[0;39m [32m INFO[0;39m [35m12304[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mw.s.c.ServletWebServerApplicationContext[0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 1552 ms [2m2024-09-04T12:05:44.120+05:30[0;39m [32m INFO[0;39m [35m12304[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat started on port 8080 (http) with context path '/' [2m2024-09-04T12:05:44.134+05:30[0;39m [32m INFO[0;39m [35m12304[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mc.tutorialspoint.demo.DemoApplication [0;39m [2m:[0;39m Started DemoApplication in 3.007 seconds (process running for 4.519) Hello World from Application Runner
Command Line Runner
Command Line Runner 是一个接口。它用于在 Spring Boot 应用程序启动后执行代码。下面的示例显示了如何在主类文件上实现 Command Line Runner 接口。
DemoApplication.java
package com.tutorialspoint.demo;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
public void run(String... arg0) throws Exception {
System.out.println("Hello world from Command Line Runner");
}
}
控制台输出
查看下面的控制台窗口输出“Hello world from Command Line Runner” println 语句在 Tomcat 启动后执行。
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ [32m :: Spring Boot :: [39m [2m (v3.3.3)[0;39m [2m2024-09-04T12:08:37.804+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mc.tutorialspoint.demo.DemoApplication [0;39m [2m:[0;39m Starting DemoApplication using Java 21.0.3 with PID 16908 (E:\Dev\demo\target\classes started by Tutorialspoint in E:\Dev\demo) [2m2024-09-04T12:08:37.808+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mc.tutorialspoint.demo.DemoApplication [0;39m [2m:[0;39m No active profile set, falling back to 1 default profile: "default" [2m2024-09-04T12:08:38.772+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat initialized with port 8080 (http) [2m2024-09-04T12:08:38.786+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardService [0;39m [2m:[0;39m Starting service [Tomcat] [2m2024-09-04T12:08:38.786+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardEngine [0;39m [2m:[0;39m Starting Servlet engine: [Apache Tomcat/10.1.28] [2m2024-09-04T12:08:38.841+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.a.c.c.C.[Tomcat].[localhost].[/] [0;39m [2m:[0;39m Initializing Spring embedded WebApplicationContext [2m2024-09-04T12:08:38.842+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mw.s.c.ServletWebServerApplicationContext[0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 980 ms [2m2024-09-04T12:08:39.185+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat started on port 8080 (http) with context path '/' [2m2024-09-04T12:08:39.192+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mc.tutorialspoint.demo.DemoApplication [0;39m [2m:[0;39m Started DemoApplication in 1.844 seconds (process running for 2.693) Hello world from Command Line Runner
广告