Spring Boot là một thành viên trong đại gia đình Spring framework. Nó giúp cho các lập trình viên chúng ta đơn giản hóa quá trình lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển business cho ứng dụng. Vậy cụ thể là như thế nào? Trong bài viết này, chúng ta hãy cùng nhau tìm hiểu nhé các bạn!
Đầu tiên, giả định rằng, các bạn cần phát triển một ứng dụng web cơ bản HelloWorld sử dụng Spring framework. Các công đoạn lập trình ứng dụng này sẽ ít nhất bao gồm các công đoạn sau;
- Tạo một project sử dụng Maven với các dependency cần thiết của Spring MVC và Servlet API.
- Một tập tin web.xml để khai báo DispatcherServlet của Spring MVC.
- Một tập tin cấu hình của Spring MVC.
- Một class Controller trả về một trang “Hello World” khi có request đến.
- Cuối cùng là phải có một web server dùng để triển khai ứng dụng lên chạy.
Tổng cộng, chúng ta có ít nhất 5 công đoạn phải không các bạn?
Trong các công đoạn này, nếu để ý các bạn có thể thấy, chỉ có công đoạn tạo một class Controller thì có thể khác cho các ứng dụng khác nhau vì mỗi ứng dụng có một yêu cầu khác nhau. Còn các công đoạn khác, chúng ta đều cần khi phát triển một ứng dụng bất kỳ với Spring và chúng có thể giống nhau phải không các bạn?
Để giảm bớt các công đoạn có thể giống nhau này, Spring Boot đã được giới thiệu. Spring Boot sẽ xử lý tự động tất cả các công đoạn có thể giống nhau đó, việc chúng ta cần làm chỉ là phát triển các đoạn code liên quan đến business của ứng dụng, chủ yếu là với Controller của Spring.
Để minh chứng cho những gì mà Spring Boot làm được, trong bài viết này mình sẽ sử dụng Spring Boot Command Line Interface (CLI) (một công cụ của Spring Boot) để chạy một ví dụ. Qua đó, các bạn sẽ thấy rằng, chỉ cần một vài thao tác nhỏ, chúng ta đã có thể tạo ra một ứng dụng chạy được với Spring Boot.
OK, bắt đầu nào các bạn.
Đầu tiên, các bạn hãy cài đặt Spring Boot CLI trước. Bạn nào chưa biết cách cài đặt thì có thể tham khảo ở đây nhé.
Của mình thì Spring Boot CLI như sau:
Bây giờ, mình sẽ dùng Spring Boot CLI để tạo một ứng dụng web cơ bản bằng câu lệnh sau:
1 |
spring init <project-name> -d=web --package-name=<package-name> -g=<maven-group-id> -a=<maven-artifact-id> |
với:
- -d=web mang ý nghĩa là chúng ta sẽ sử dụng spring-boot-starter-web
- -g là Maven Group Id
- -a là Maven Artifact Id
- –package-name là tên của package.
Ở đây, mình sẽ tạo một ứng dụng web tên là hello như sau:
Kết quả là một thư mục tên là hello sẽ được tạo ra cùng với đó là cấu trúc của một Maven project như sau:
Các bạn hãy dùng command line để di chuyển đến thư mục hello và sử dụng câu lệnh sau;
1 |
mvn spring-boot:run |
để chạy ứng dụng web mà chúng ta vừa tạo.
Kết quả:
Như các bạn thấy, Spring Boot đã tự động làm hết mọi chuyện để chạy ứng dụng web của chúng ta trên Tomcat với port mặc định là 8080.
Nếu bây giờ các bạn sử dụng trình duyệt và truy cập đến địa chỉ http://localhost:8080 thì kết quả sẽ như sau:
Chúng ta đang nhìn thấy một lỗi là 404 Not Found, nguyên nhân là vì trong project mà chúng ta vừa tạo không có một Controller nào xử lý cho request đến trang chủ.
Bây giờ, nếu các bạn tạo một class HelloController với nội dung như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package com.huongdanjava.springboot; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping(value = "/") public ResponseEntity<String> hello() { return new ResponseEntity<String>("Hello World!", HttpStatus.OK); } } |
và đặt trong thư mục /src/main/java/com/huongdanjava/springboot của project:
sau đó chạy lại câu lệnh:
1 |
mvn spring-boot:run |
thì kết quả sẽ như sau:
Rõ ràng, như các bạn thấy, chúng ta không mất qua nhiều công sức để tạo một web project có thể chạy được. Mọi thứ đã được Spring Boot tự động làm hết, cái mà chúng ta quan tâm chỉ là Controller.