Spring Boot Lifecycle
1. Introduction
The Spring Boot Lifecycle describes the sequence of stages that occur from the moment a Spring Boot application starts until it shuts down.
- Application Startup
- Spring Container Initialization
- Bean Lifecycle Management
- Application Ready State
- Application Shutdown
2. High-Level Lifecycle Flow
Application Start
│
▼
SpringApplication.run()
│
▼
Environment Prepared
│
▼
ApplicationContext Created
│
▼
Beans Instantiated
│
▼
Dependency Injection
│
▼
Bean Initialization
│
▼
Application Ready
│
▼
Application Running
│
▼
Shutdown Triggered
│
▼
Bean Destruction
3. Application Entry Point
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
4. Application Types
| Type | Description |
| Servlet | Traditional web application |
| Reactive | Reactive web application |
| None | Non‑web application |
5. Bean Lifecycle
Bean Definition Loaded
│
▼
Bean Instantiation
│
▼
Dependency Injection
│
▼
@PostConstruct
│
▼
Bean Ready
│
▼
PreDestroy
│
▼
Bean Destroyed
6. Bean Example
@Component
public class UserService {
public UserService() {
System.out.println("Bean Created");
}
@PostConstruct
public void init() {
System.out.println("Bean Initialized");
}
@PreDestroy
public void destroy() {
System.out.println("Cleaning resources...");
}
}
7. Startup Hooks
CommandLineRunner
@Component
public class MyRunner implements CommandLineRunner {
@Override
public void run(String... args) {
System.out.println("CommandLineRunner executed");
}
}
ApplicationRunner
@Component
public class MyAppRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) {
System.out.println("ApplicationRunner executed");
}
}
8. Lifecycle Events
| Event | Description |
| ApplicationStartingEvent | Application starting |
| ApplicationEnvironmentPreparedEvent | Environment ready |
| ApplicationContextInitializedEvent | Context initialized |
| ApplicationPreparedEvent | Context prepared |
| ApplicationStartedEvent | Application started |
| ApplicationReadyEvent | Application ready |
| ApplicationFailedEvent | Startup failure |
9. Shutdown Lifecycle
Shutdown Triggered
│
▼
Context Closing
│
▼
PreDestroy Methods
│
▼
Disposable Beans Destroyed
│
▼
Embedded Server Shutdown
10. Summary
| Stage | Description |
| Start | SpringApplication.run() executed |
| Environment | Properties loaded |
| Context Creation | Spring container initialized |
| Bean Creation | Beans instantiated |
| Dependency Injection | Dependencies injected |
| Initialization | @PostConstruct |
| Ready | ApplicationReadyEvent |
| Running | Application serving requests |
| Shutdown | @PreDestroy methods |