@SpringBootApplication
@SpringBootApplication
là một annotation quan trọng trong Spring Boot, được sử dụng để đánh dấu lớp chính (entry point) của một ứng dụng Spring Boot. Nó là một tiện ích kết hợp ba annotation chính trong Spring:
Cấu trúc của
@SpringBootApplication
:
2. Thành phần chính của @SpringBootApplication
:
@SpringBootApplication
:a. @SpringBootConfiguration
:
Đây là một biến thể của
@Configuration
trong Spring, đánh dấu lớp này là một cấu hình của Spring Boot.Giúp định nghĩa các bean trong context của Spring.
b. @EnableAutoConfiguration
:
Kích hoạt cơ chế tự động cấu hình (auto-configuration) của Spring Boot.
Spring Boot sẽ cố gắng tự động cấu hình ứng dụng dựa trên các dependency có trong classpath. Ví dụ, nếu bạn có
spring-boot-starter-web
, Spring Boot sẽ tự động cấu hình một web server như Tomcat.
c. @ComponentScan
:
Quét các package để tìm các bean khác (ví dụ:
@Component
,@Service
,@Repository
,@Controller
) và tự động đăng ký chúng trong Spring Application Context.Theo mặc định, Spring Boot quét các class trong package của lớp chính và tất cả các package con.
3. Lợi ích của @SpringBootApplication
:
@SpringBootApplication
:Tích hợp các annotation cần thiết: Bạn không cần phải khai báo riêng lẻ
@Configuration
,@EnableAutoConfiguration
, và@ComponentScan
.Đơn giản hóa cấu hình: Giúp khởi tạo một ứng dụng Spring Boot với ít cấu hình nhất có thể.
Tự động cấu hình: Giảm thiểu cấu hình thủ công thông qua các file
application.properties
hoặcapplication.yml
.
4. Tuỳ chỉnh @SpringBootApplication
:
@SpringBootApplication
:Bạn có thể tuỳ chỉnh bằng cách sử dụng các thuộc tính của
@ComponentScan
,@EnableAutoConfiguration
, ví dụ:
scanBasePackages
: Xác định các package cụ thể mà Spring sẽ quét để tìm các component.
6. Khi nào không cần @SpringBootApplication
:
@SpringBootApplication
:Trong các ứng dụng Spring truyền thống hoặc khi bạn cần kiểm soát chi tiết hơn các thành phần của ứng dụng, bạn có thể chỉ sử dụng
@Configuration
,@ComponentScan
, và@EnableAutoConfiguration
riêng biệt.
@SpringBootApplication
là một cách tiếp cận mạnh mẽ và tiện lợi để nhanh chóng khởi tạo và cấu hình một ứng dụng Spring Boot với cấu hình mặc định và dễ dàng tùy chỉnh khi cần thiết.
Last updated