Trong các bài viết trước, chúng ta đã thảo luận về những kiến thức cơ bản của Spring Boot và việc sử dụng bốn component chính. Hôm nay, chúng ta sẽ đi sâu vào một trong những component đó: Spring Boot CLI.
Spring Boot CLI là gì?
Spring Boot CLI là một phần mềm giúp bạn chạy và kiểm tra các ứng dụng Spring Boot từ command prompt. Khi chúng ta chạy ứng dụng bằng CLI, nó sẽ tự động sử dụng Spring Boot Starter và Spring Boot AutoConfigurate để giải quyết tất cả các phụ thuộc (dependencies) và thực thi ứng dụng.
Nó tích hợp sẵn Groovy và Grape (một công cụ quản lý các phụ thuộc JAR – JAR Dependency Manager) để tự động thêm các cấu hình mặc định của Spring Boot và giải quyết tất cả các phụ thuộc một cách tự động.
Chúng ta sẽ tìm hiểu về cách cài đặt, thiết lập và các lệnh của CLI trong môi trường Windows. Cách thực hiện cũng tương tự với các môi trường khác.
Cài đặt Spring Boot CLI
Bạn có thể cài đặt phần mềm Spring Boot CLI bằng cách sử dụng Windows Installer hoặc tệp tin nén. Cả hai cách này đều dễ thực hiện và cho ra kết quả giống nhau. Chúng ta sẽ sử dụng cách dễ hơn là dùng tệp tin nén với phiên bản mới nhất: 1.2.3.RELEASE
. Bạn có thể tải phần mềm Spring Boot CLI tại: https://start.spring.io/ (Đây là giao diện web của Spring Initializr. Chúng ta sẽ thảo luận chi tiết về thành phần này trong các bài viết sắp tới). Vui lòng làm theo các bước sau để cài đặt và thiết lập phần mềm Spring Boot CLI trong môi trường Windows.
- Tải tệp tin nén Spring Boot CLI từ Spring Initializr. Nhấp vào nút “Download Spring CLI Zip” như hình dưới đây:
- Sau khi tải tệp tin nén Spring Boot CLI về máy, bạn sẽ thấy nó như thế này.
- Giải nén (Extract) tệp tin
spring-boot-cli-1.2.3.RELEASE.zip
vào hệ thống tệp tin cục bộ (Local FileSystem).
- Thiết lập các biến môi trường cho Spring Boot CLI trong hệ thống Windows như sau:
set PATH=D:\\spring-boot-cli-1.2.3.RELEASE\\bin;%PATH%
- Thực thi lệnh sau để kiểm tra quá trình cài đặt:
Chúng ta có thể sử dụng spring --version
để biết phiên bản của Spring Boot CLI.
spring --version
Chúng ta có thể sử dụng spring --help
để biết các lệnh của Spring Boot CLI.
spring --help
Bây giờ quá trình cài đặt Spring Boot CLI đã hoàn tất. Trước khi đi vào ví dụ “Hello World”, chúng ta hãy xem cách chạy các tập lệnh Groovy từ command prompt.
Lệnh spring
của Spring Boot
Phần mềm Spring Boot CLI cung cấp lệnh spring
để chạy các tập lệnh Groovy của Spring Boot từ Command Prompt. Như đã thấy ở trên, lệnh spring --help
có nhiều tùy chọn cho các mục đích khác nhau. Một tùy chọn quan trọng mà chúng ta sẽ sử dụng ở đây là run
. Cú pháp của lệnh spring
là:
spring run <SpringBoot-Groovy-Scriptname>
Đây là tên của tệp lệnh Groovy của một ứng dụng Spring Boot. Chúng ta sẽ sử dụng lệnh này để thực thi ví dụ “Hello World” của mình. Bây giờ, hãy làm việc với ví dụ “Hello World” đơn giản bằng Spring Boot CLI.
Ví dụ “Hello World” với Spring Boot
Chúng ta sẽ phát triển một ví dụ về Spring Boot MVC RestController. Đây là ví dụ đầu tiên được nhóm Pivotal công bố trên Twitter để trình bày sức mạnh của Framework Spring Boot. Vui lòng làm theo các bước sau để phát triển ví dụ “Hello World” với Spring Boot:
- Tạo một thư mục tên là “HelloWorld” trong hệ thống tệp tin cục bộ của bạn để lưu trữ các tập lệnh Groovy.
- Phát triển một tệp lệnh Groovy với nội dung sau:
@RestController
class HelloWorld {
@RequestMapping("/")
String hello() {
"Hello JournalDev World."
}
}
Lưu tệp này dưới tên HelloWorld.groovy
. Đuôi mở rộng .groovy
là bắt buộc.
Giải thích code:
- Định nghĩa một REST Controller bằng cách sử dụng annotation
@RestController
của Spring 4 MVC. - Định nghĩa một đường dẫn (Mapping URL) “/” bằng cách sử dụng annotation
@RequestMapping
của Spring MVC. - Định nghĩa một phương thức (method) để trả về một chuỗi ký tự cho Client hoặc trình duyệt web.
Những điểm cần chú ý về code: Nếu chúng ta quan sát tệp HelloWorld.groovy
của mình, chúng ta có thể thấy những điểm quan trọng sau:
- Không có lệnh import.
- Không có các cấu hình XML (XML configuration) khác để định nghĩa các thành phần Spring MVC như Views, ViewResolver, v.v.
- Không có tệp
web.xml
và không có khai báo DispatcherServlet. - Không có tập lệnh xây dựng để tạo tệp
war
cho ứng dụng của chúng ta. - Không cần tạo tệp
war
để triển khai (deploy) ứng dụng này.
Vậy ai sẽ cung cấp tất cả những thứ này cho ứng dụng “Hello World” của chúng ta? Trước tiên hãy chạy ứng dụng và xem kết quả, sau đó chúng ta sẽ trả lời câu hỏi này. Bây giờ thư mục ví dụ “Hello World” của chúng ta trông như thế này:
Giờ đây, ví dụ “Hello World” của chúng ta đã sẵn sàng với Spring MVC RestController. Đã đến lúc chạy và kiểm tra ví dụ này để biết sức mạnh của Framework Spring Boot.
Chạy ví dụ “Hello World” với Spring Boot
Vui lòng làm theo các bước sau để kiểm tra ứng dụng “Hello World” của chúng ta:
- Mở command prompt tại thư mục “HelloWorld”.
- Thực thi lệnh sau:
spring run HelloWorld.groovy
- Quan sát đầu ra tại console của lệnh
spring run
.
Nếu chúng ta quan sát ở đây, khi chúng ta thực thi spring run HelloWorld.groovy
, nó sẽ khởi động một máy chủ Tomcat nhúng (Embedded Tomcat server) tại cổng mặc định là 8080
. Bây giờ ứng dụng ví dụ “Hello World” của chúng ta đã chạy và hoạt động. Đã đến lúc kiểm tra nó.
LƯU Ý: Nếu bạn quan sát ảnh chụp màn hình ở trên, tôi đã làm nổi bật tệp lớp (class file) SpringApplication
. Ở đây o.s.boot.SpringApplication
có nghĩa là lớp org.springframework.boot.SpringApplication
. SpringApplication là gì? SpringApplication dùng để làm gì? Vui lòng tham khảo các bài viết sắp tới của tôi để trả lời những câu hỏi này. Mở trình duyệt và truy cập liên kết sau: https://localhost:8080/
Bây giờ chúng ta đã có thể truy cập WebService RESTful Spring Boot MVC đầu tiên của mình.
Nếu chúng ta quan sát ứng dụng Spring Boot này, chúng ta có thể nảy sinh câu hỏi: ai sẽ cung cấp tất cả những thứ này cho ứng dụng “Hello World” của chúng ta?
- Không có lệnh import.
- Không có các cấu hình XML khác để định nghĩa các thành phần Spring MVC như Views, ViewResolver, v.v.
- Không có tệp
web.xml
và không có khai báo DispatcherServlet. - Không có tập lệnh xây dựng để tạo tệp
war
cho ứng dụng của chúng ta. - Không cần tạo tệp
war
để triển khai ứng dụng này.
Câu trả lời cho câu hỏi này: Đó là trách nhiệm của các thành phần cốt lõi của Spring Boot, trình biên dịch Groovy (Groovy Compiler) và Groovy Grape (trình quản lý phụ thuộc JAR của Groovy). Các thành phần Spring Boot sử dụng trình biên dịch Groovy và Groovy Grape để cung cấp một số cấu hình mặc định như thêm các lệnh imports cần thiết, cung cấp cấu hình cần thiết, giải quyết các phụ thuộc của JAR, thêm phương thức main()
, v.v.
Là một nhà phát triển Spring Boot, chúng ta không cần phải lo lắng về tất cả những điều này. Khung Framework Spring Boot sẽ lo tất cả những điều này cho chúng ta. Đó là vẻ đẹp của khung làm việc Spring Boot. Bằng cách này, khung làm việc Spring Boot tránh được rất nhiều mã lặp đi lặp lại và cấu hình Spring, rút ngắn thời gian phát triển và tăng năng suất.
Ở đây chúng ta chưa thảo luận nhiều về annotations của Spring Boot, API của Spring Boot, mục đích sử dụng của phương thức main()
trong ứng dụng Spring Boot, v.v. Chúng ta sẽ trả lời tất cả những câu hỏi này trong các bài viết sắp tới bằng cách sử dụng các IDE (môi trường phát triển tích hợp) của Spring Boot. Đó là tất cả về Spring Boot CLI. Nếu bạn có bất kỳ câu hỏi nào, vui lòng để lại bình luận.