Giới thiệu Spring Boot
Spring Boot là một framework phát triển nhanh dựa trên Spring, áp dụng nguyên tắc "convention over configuration" để giảm thiểu cấu hình XML. Các lợi ích chính bao gồm:
- Phụ thuộc khởi đầu (Starter Dependencies): Tổng hợp các phụ thuộc phổ biến để đơn giản hóa cấu hình Maven/Gradle.
- Cấu hình tự động (Auto-Configuration): Tự động cấu hình các thành phần của Spring dựa trên đường dẫn lớp và Bean.
- Máy chủ nhúng: Bao gồm Tomcat, Jetty hoặc Undertow, có thể chạy trực tiếp từ JAR.
- Tính năng cấp sản xuất: Cung cấp kiểm tra sức khỏe, giám sát chỉ số, cấu hình bên ngoài, v.v.
Chuẩn bị môi trường
- JDK: 8 hoặc 11 (Spring Boot 2.x), 17 (Spring Boot 3.x).
- Công cụ xây dựng: Maven 3.5+ hoặc Gradle 6+.
- IDE: IntelliJ IDEA, Eclipse, VS Code đều được (khuyến nghị IDEA).
- Tùy chọn: Postman (kiểm thử API), Docker (triển khai container).
Tạo ứng dụng Spring Boot đầu tiên
Sử dụng Spring Initializr để tạo dự án
Truy cập start.spring.io, chọn:
- Dự án: Maven
- Ngôn ngữ: Java
- Phiên bản Spring Boot: Chọn phiên bản ổn định (ví dụ 3.2.x)
- Nhóm: com.example
- Artifacts: demo
- Phụ thuộc: Spring Web (để xây dựng REST API)
Kết cấu dự án
demo/ ├── src/main/java/com/example/demo/ │ └── AppKhoiDong.java # Lớp khởi động ├── src/main/resources/ │ ├── caidat.properties # Tệp cấu hình │ └── tinhnang/ # Tài nguyên tĩnh │ └── mau/ # Tệp mẫu └── pom.xml
Viết giao diện REST đầu tiên
@RestController
public class XinChaoController {
@GetMapping("/xin-chao")
public String xinChao() {
return "Xin chào, Spring Boot!";
}
}
Chạy ứng dụng
Thực thi phương thức `main()` trong `AppKhoiDong`, sau khi thấy nhật ký khởi động, truy cập http://localhost:8080/xin-chao để xem kết quả.
Đặc trưng cốt lõi chi tiết
Lớp khởi động và @SpringBootApplication
@SpringBootApplication là một chú thích tổng hợp bao gồm:
- @Configuration: Khai báo lớp cấu hình
- @EnableAutoConfiguration: Kích hoạt cấu hình tự động
- @ComponentScan: Quét tự động các thành phần trong gói hiện tại và các gói con
Phụ thuộc khởi đầu
Trong tệp pom.xml, thêm các phụ thuộc spring-boot-starter-* để nhận một nhóm phụ thuộc tương thích. Ví dụ:
spring-boot-starter-web: Bao gồm Spring MVC, Jackson, Tomcatspring-boot-starter-data-jpa: Bao gồm Hibernate, Spring Data JPA, HikariCP
Tệp cấu hình
Spring Boot hỗ trợ caidat.properties hoặc caidat.yml. Một số cấu hình thông dụng:
# Thay đổi cổng server.port=8081 # Cấu hình cơ sở dữ liệu spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456
Hoặc sử dụng định dạng YAML (gọn hơn):
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/test
username: root
password: 123456
Ghi log
Mặc định sử dụng Logback, có thể thiết lập mức độ trong tệp cấu hình:
logging.level.com.example=DEBUG logging.file.name=ungdung.log