Spring Boot và Quy Trình Khởi Tạo Ứng Dụng
Spring Boot là một trong những framework phổ biến nhất cho việc phát triển ứng dụng Java hiện đại. Trong bài viết này, chúng ta sẽ khám phá quy trình khởi tạo ứng dụng Spring Boot thông qua dòng lệnh SpringApplication.run(Main.class, args);
.
1. Mã Nguồn Cơ Bản
Để hiểu rõ hơn, chúng ta sẽ xem xét đoạn mã đơn giản dưới đây:
java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
2. Tìm Hiểu Về @SpringBootApplication
Annotation @SpringBootApplication
là một meta-annotation, bao gồm ba phần chính:
- @SpringBootConfiguration: Chỉ định lớp cấu hình cho ứng dụng.
- @EnableAutoConfiguration: Kích hoạt tính năng tự động cấu hình trong Spring Boot, giúp ứng dụng tự động cấu hình các bean cần thiết dựa trên các thư viện có trong classpath.
- @ComponentScan: Kích hoạt cơ chế quét các thành phần trong package hiện tại và các sub-packages.
3. Phương Thức Khởi Tạo
Phương Thức Main
Phương thức main
là điểm bắt đầu của ứng dụng Java:
java
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
SpringApplication.run(Main.class, args)
Đây là nơi Spring Boot khởi chạy toàn bộ ứng dụng thông qua một quy trình gồm nhiều bước:
-
Tạo Đối Tượng SpringApplication:
SpringApplication.run(Main.class, args)
tạo một đối tượngSpringApplication
dựa trên class được truyền vào.
-
Cấu Hình Môi Trường:
- Spring tự động load các cấu hình từ
application.properties
hoặcapplication.yml
và cấu hình profiles.
- Spring tự động load các cấu hình từ
-
Khởi Tạo ApplicationContext:
- Dựa trên loại ứng dụng (web hay không web), Spring Boot sẽ khởi tạo
ApplicationContext
phù hợp, quản lý các bean và dependency injection.
- Dựa trên loại ứng dụng (web hay không web), Spring Boot sẽ khởi tạo
-
Tự Động Cấu Hình (Auto-Configuration):
- Được thực hiện nhờ
@EnableAutoConfiguration
, Spring Boot sẽ tìm kiếm và kích hoạt các cấu hình mặc định trongMETA-INF/spring.factories
.
- Được thực hiện nhờ
-
Kích Hoạt Quét Thành Phần (Component Scan):
- Dựa trên annotation
@ComponentScan
, Spring Boot sẽ tìm kiếm và khởi tạo các bean trong package hiện tại.
- Dựa trên annotation
-
Khởi Chạy ApplicationContext:
- ApplicationContext xử lý lifecycle của các bean và thực hiện các callback như
@PostConstruct
.
- ApplicationContext xử lý lifecycle của các bean và thực hiện các callback như
-
Kích Hoạt
ApplicationRunner
vàCommandLineRunner
:- Nếu có bean implements
ApplicationRunner
hoặcCommandLineRunner
, chúng sẽ được chạy sau khi ApplicationContext khởi tạo.
- Nếu có bean implements
-
Khởi Chạy Máy Chủ Web (Nếu Cần):
- Nếu là một ứng dụng web, một máy chủ nhúng (như Tomcat) sẽ được khởi động để xử lý các yêu cầu HTTP.
4. Kết Luận
Bài viết đã giải thích cách mà một ứng dụng Spring Boot được khởi tạo, từ việc sử dụng @SpringBootApplication
cho đến cách Spring Boot tự động cấu hình và quản lý các bean. Từ đó, người đọc có thể hiểu rõ hơn về quy trình khởi động và các tính năng mạnh mẽ của Spring Boot trong việc phát triển ứng dụng Java. Nếu bài viết hữu ích, hãy để lại phản hồi để mình có động lực tiếp tục chia sẻ kiến thức trong các bài viết tiếp theo!