Skip to main content

Command Palette

Search for a command to run...

Bài 7: Giới thiệu về Spring Boot

Published
4 min readView as Markdown

1. Định nghĩa Spring Boot

Spring Boot là một framework được xây dựng trên nền tảng Spring Framework, giúp đơn giản hóa quá trình phát triển các ứng dụng Java bằng cách cung cấp các cấu hình mặc định và tự động hóa. Spring Boot loại bỏ sự phức tạp của việc cấu hình các thành phần riêng lẻ trong ứng dụng, cho phép các nhà phát triển tập trung vào việc viết mã nghiệp vụ hơn là cấu hình.

2. Lợi ích của Spring Boot

  • Cấu hình tự động: Spring Boot tự động cấu hình các thành phần của ứng dụng dựa trên các dependency có trong classpath.

  • Standalone: Các ứng dụng Spring Boot có thể chạy độc lập mà không cần container ứng dụng ngoài như Tomcat hay Jetty, nhờ vào cơ chế embedded server.

  • Productivity: Spring Boot giúp tăng năng suất lập trình nhờ vào việc giảm thiểu cấu hình và cung cấp các công cụ hỗ trợ như Spring Boot CLI, Spring Initializr.

  • Monitoring và Metrics: Tích hợp sẵn các công cụ giám sát và quản lý như Spring Boot Actuator giúp theo dõi và quản lý ứng dụng dễ dàng hơn.

  • Microservices Ready: Spring Boot hỗ trợ mạnh mẽ cho việc phát triển các microservices, với các tính năng như Spring Cloud để dễ dàng xây dựng các hệ thống phân tán.

3. Cấu trúc một dự án Spring Boot

Một dự án Spring Boot thường có cấu trúc thư mục như sau:

my-spring-boot-app
|-- src
|   |-- main
|   |   |-- java
|   |   |   `-- com
|   |   |       `-- example
|   |   |           `-- myapp
|   |   |               |-- MySpringBootApplication.java
|   |   |               `-- controller
|   |   |                   `-- HelloController.java
|   |   `-- resources
|   |       |-- application.properties
|   |       `-- static
|   |       |-- templates
|   `-- test
|       |-- java
|       |   `-- com
|       |       `-- example
|       |           `-- myapp
|       |               `-- MySpringBootApplicationTests.java
|       `-- resources
|-- pom.xml

3.1. Thư mục src/main/java

Chứa mã nguồn chính của ứng dụng, bao gồm các lớp Java và các package con để tổ chức mã nguồn.

3.2. Thư mục src/main/resources

Chứa các file cấu hình và tài nguyên tĩnh của ứng dụng, như file application.properties để cấu hình các thuộc tính của ứng dụng và các thư mục statictemplates để chứa các tài nguyên tĩnh và các template.

3.3. Thư mục src/test/java

Chứa mã nguồn kiểm thử của ứng dụng, bao gồm các lớp kiểm thử và các package con để tổ chức mã nguồn kiểm thử.

3.4. File pom.xml

File cấu hình Maven, chứa các dependency cần thiết cho dự án và các plugin để build và chạy ứng dụng.

4. Ví dụ về một ứng dụng Spring Boot đơn giản

Dưới đây là một ví dụ đơn giản về cách tạo một ứng dụng Spring Boot với một endpoint RESTful.

4.1. Tạo dự án Spring Boot bằng Spring Initializr

Truy cập Spring Initializr, chọn các thông tin sau:

  • Project: Maven

  • Language: Java

  • Spring Boot: 2.5.4

  • Group: com.example

  • Artifact: myapp

  • Dependencies: Spring Web

Nhấn "Generate" để tải xuống dự án và giải nén file zip.

4.2. Cấu trúc dự án

Cấu trúc dự án sau khi tải về và giải nén:

myapp
|-- src
|   |-- main
|   |   |-- java
|   |   |   `-- com
|   |   |       `-- example
|   |   |           `-- myapp
|   |   |               `-- MySpringBootApplication.java
|   |   `-- resources
|   |       `-- application.properties
|-- pom.xml

4.3. Tạo lớp chính của ứng dụng

// MySpringBootApplication.java
package com.example.myapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MySpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(MySpringBootApplication.class, args);
    }
}

4.4. Tạo một REST controller

// HelloController.java
package com.example.myapp.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class HelloController {
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, Spring Boot!";
    }
}

4.5. Cấu hình ứng dụng

File application.properties có thể để trống hoặc cấu hình các thuộc tính cần thiết cho ứng dụng.

# application.properties
server.port=8080

4.6. Chạy ứng dụng

Chạy ứng dụng bằng cách sử dụng Maven:

mvn spring-boot:run

Mở trình duyệt và truy cập URL http://localhost:8080/api/hello, bạn sẽ thấy kết quả "Hello, Spring Boot!".

5. Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về Spring Boot, lợi ích của nó và cấu trúc một dự án Spring Boot. Chúng ta cũng đã tạo một ứng dụng Spring Boot đơn giản với một REST controller. Spring Boot giúp đơn giản hóa quá trình phát triển các ứng dụng Java, cung cấp các cấu hình mặc định và các công cụ mạnh mẽ để tăng năng suất lập trình.

Trong bài viết tiếp theo, chúng ta sẽ tìm hiểu về các Spring Boot Starter Projects phổ biến và cách sử dụng chúng để tích hợp các tính năng vào dự án một cách dễ dàng.

More from this blog

devngu

169 posts