Spring Boot là một framework mạnh mẽ giúp lập trình viên Java xây dựng ứng dụng nhanh chóng và hiệu quả. Trong đó, Spring Boot MVC là một cách tiếp cận cụ thể để phát triển ứng dụng web. Bài viết này sẽ giải thích Spring Boot và Spring Boot MVC là gì, so sánh sự khác biệt, cung cấp ví dụ minh họa, và nêu các ứng dụng thực tế để học viên dễ dàng nắm bắt.
Spring Boot là một framework dựa trên Spring Framework, được thiết kế để giảm thiểu cấu hình phức tạp và tăng tốc phát triển ứng dụng Java. Nó cung cấp các tính năng như:
Spring Boot phù hợp cho nhiều loại ứng dụng, từ API cho ứng dụng mobile đến hệ thống microservices quy mô lớn.
Spring Boot MVC là một phần của Spring Boot, sử dụng mô hình Model-View-Controller (MVC) để xây dựng ứng dụng web có giao diện người dùng (HTML). Các thành phần chính của MVC:
Spring Boot MVC thường được dùng khi bạn cần tạo website với giao diện động, như trang quản trị hoặc website công ty.
Dưới đây là bảng so sánh chi tiết giữa Spring Boot và Spring Boot MVC:
Tiêu chí | Spring Boot | Spring Boot MVC |
---|---|---|
Khái niệm | Framework tổng quát để xây dựng ứng dụng Java (API, microservices, web, v.v.). | Module trong Spring Boot, dùng mô hình MVC để phát triển ứng dụng web. |
Mục đích | Linh hoạt, hỗ trợ REST API, microservices, batch processing, v.v. | Tập trung vào ứng dụng web có giao diện người dùng (HTML). |
Xử lý yêu cầu | Dùng @RestController để trả về JSON/XML (API). | Dùng @Controller để trả về tên view (HTML). |
Công cụ giao diện | Thường không cần template, trả về dữ liệu thô. | Sử dụng Thymeleaf, JSP để render giao diện HTML. |
Ứng dụng thực tế | API cho mobile, microservices (Netflix, Uber). | Website quản trị, ứng dụng nội bộ (trang dashboard). |
Tóm lại: Spring Boot là hệ sinh thái lớn, trong đó Spring Boot MVC là cách sử dụng cụ thể để xây dựng ứng dụng web theo mô hình MVC.
Mục đích: Tạo một REST API trả về danh sách sách (JSON).
POM.xml:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Code Java:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
record Book(Long id, String title, String author) {}
@RestController
class BookController {
@GetMapping("/api/books")
public List<Book> getBooks() {
return Arrays.asList(
new Book(1L, "Spring Boot Guide", "John Doe"),
new Book(2L, "Java Mastery", "Jane Smith")
);
}
}
Kết quả:
Truy cập http://localhost:8080/api/books:
[
{"id": 1, "title": "Spring Boot Guide", "author": "John Doe"},
{"id": 2, "title": "Java Mastery", "author": "Jane Smith"}
]
Mục đích: Tạo một trang web hiển thị danh sách người dùng.
POM.xml:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
Code Java:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.Arrays;
import java.util.List;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@Controller
class UserController {
@GetMapping("/users")
public String getUsers(Model model) {
List<String> users = Arrays.asList("John", "Jane", "Bob");
model.addAttribute("users", users);
return "userList";
}
}
Template Thymeleaf (src/main/resources/templates/userList.html):
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>User List</title>
</head>
<body>
<h1>Danh sách người dùng</h1>
<ul>
<li th:each="user : ${users}" th:text="${user}"></li>
</ul>
</body>
</html>
Kết quả:
Truy cập http://localhost:8080/users:
Danh sách người dùng
- John
- Jane
- Bob
Nhiều công ty lớn sử dụng Spring Boot để xây dựng REST API và microservices:
Lý do chọn Spring Boot:
Spring Boot MVC được dùng cho các ứng dụng web truyền thống:
Lý do chọn Spring Boot MVC:
Dùng Spring Boot (REST API):
Dùng Spring Boot MVC:
Spring Boot là một framework linh hoạt, giúp lập trình viên xây dựng ứng dụng Java nhanh chóng, từ REST API đến microservices. Spring Boot MVC là một cách sử dụng cụ thể của Spring Boot, tập trung vào ứng dụng web với mô hình MVC. Tùy thuộc vào nhu cầu dự án, bạn có thể chọn REST API (cho mobile, SPA) hoặc MVC (cho website truyền thống).
Học viên nên bắt đầu với ví dụ REST API đơn giản để hiểu cách Spring Boot hoạt động, sau đó khám phá MVC để xây dựng ứng dụng web. Để thực hành, hãy dùng Spring Initializr (start.spring.io) để tạo dự án và thử nghiệm các ví dụ trên.
Nếu bạn cần thêm tài liệu hoặc hướng dẫn chi tiết, hãy để lại câu hỏi nhé!