Spring Boot là gì? Đây là một dự án hoàn toàn mới của Pivotal Team (còn gọi là Spring Team). Đây là một framework được phát triển trên nền tảng Spring Framework đã có trước đó.
Những thông tin cơ bản về Spring Boot
Spring Boot sử dụng một mô hình phát triển hoàn toàn mới giúp cho việc phát triển ứng dụng Java trở nên dễ dàng hơn rất nhiều. Nó loại bỏ các bước phát triển rườm rà cũng như giảm thiểu code và cấu hình boilerplate (code mẫu).
Spring Boot là gì?
Spring Boot là một framework do Spring Team phát triển, nhằm đơn giản hóa việc khởi tạo và phát triển các ứng dụng Spring mới. Nó cung cấp các cấu hình mặc định sẵn cho code và annotation, giúp khởi động nhanh các dự án Spring chỉ trong thời gian ngắn.
Spring Boot tuân theo phương pháp cấu hình mặc định có chủ kiến (Opinionated Defaults Configuration) nhằm loại bỏ phần lớn mã lặp (boilerplate code), từ đó cải thiện quy trình phát triển, unit test và integration test (kiểm thử đơn vị và kiểm thử tích hợp).
Spring Boot có phải là framework mới hoàn toàn?
Spring Boot Framework không phải do nhóm Spring xây dựng lại từ đầu, mà được phát triển dựa trên nền tảng Spring Framework (Spring IO Platform) đã có. Nó không dùng để giải quyết những bài toán mới, mà vẫn tập trung vào các bài toán tương tự như Spring Framework.
Tại sao nên dùng Spring Boot?
- Để đơn giản hóa quy trình phát triển, unit test và integration test cho các ứng dụng Java.
- Để giảm thời gian phát triển, unit test và integration test bằng cách cung cấp các cấu hình mặc định.
- Để tăng năng suất phát triển phần mềm.
Đừng quá lo lắng nếu bạn chưa hiểu rõ về phương pháp “Opinionated Defaults Configuration”. Chúng ta sẽ tìm hiểu chi tiết về khái niệm này kèm theo các ví dụ cụ thể trong những bài viết sau.
Ưu điểm của Spring Boot
- Rất dễ dàng phát triển các ứng dụng dựa trên Spring bằng Java hoặc Groovy.
- Giúp giảm đáng kể thời gian phát triển và tăng năng suất.
- Loại bỏ việc phải viết nhiều code boilerplate, annotation và cấu hình XML.
- Dễ dàng tích hợp ứng dụng Spring Boot với hệ sinh thái Spring như Spring JDBC, Spring ORM, Spring Data, Spring Security, v.v.
- Tuân theo phương pháp “Opinionated Defaults Configuration” để giảm thiểu công sức cho lập trình viên.
- Cung cấp sẵn các server HTTP nhúng như Tomcat, Jetty, giúp việc phát triển và kiểm thử ứng dụng web trở nên cực kỳ đơn giản.
- Cung cấp công cụ CLI (giao diện dòng lệnh) để phát triển và kiểm thử ứng dụng Spring Boot (viết bằng Java hoặc Groovy) một cách dễ dàng và nhanh chóng ngay trên dòng lệnh.
- Cung cấp nhiều plugin để phát triển và kiểm thử ứng dụng Spring Boot một cách dễ dàng thông qua các công cụ để build phần mềm như Maven và Gradle.
- Cung cấp nhiều plugin giúp làm việc với các database nhúng và in-memory một cách thuận tiện.
Nói một cách đơn giản, ta có thể hình dung Spring Boot như sau:
Spring Boot = Spring Framework hiện có + Các server HTTP nhúng (Tomcat/Jetty, v.v.) – Cấu hình XML và Annotation.
Dấu trừ ở đây có nghĩa là chúng ta không cần phải viết bất kỳ cấu hình XML nào và chỉ cần sử dụng rất ít annotation.
Mục tiêu chính của Spring Boot
Mục tiêu chính của Spring Boot Framework là rút ngắn thời gian phát triển, unit test, integration test, và đơn giản hóa việc xây dựng các ứng dụng web sẵn sàng cho môi trường production.
So với Spring Framework truyền thống vốn tốn khá nhiều thời gian của lập trình viên, Spring Boot làm quá trình này trở nên dễ dàng hơn rất nhiều bằng cách giúp họ:
- Loại bỏ hoàn toàn cấu hình bằng XML.
- Tránh việc phải định nghĩa nhiều cấu hình annotation (nó đã kết hợp các annotation có sẵn của Spring Framework thành những annotation đơn giản và duy nhất).
- Tránh việc phải viết nhiều câu lệnh import.
- Cung cấp các cấu hình mặc định để nhanh chóng khởi tạo dự án mới.
- Cung cấp phương pháp phát triển có chủ kiến (Opinionated Development).
Nhờ những ưu điểm trên, Spring Boot Framework giúp giảm thời gian phát triển, giảm công sức của lập trình viên và tăng năng suất.
Hạn chế của Spring Boot
Không thể phủ nhận là Spring Boot Framework cũng có một hạn chế. Việc chuyển đổi một dự án Spring Framework cũ sang ứng dụng Spring Boot có thể hơi tốn thời gian, mặc dù việc này hoàn toàn khả thi với mọi loại dự án.
Ngược lại, việc tạo một dự án mới hoàn toàn với Spring Boot lại rất dễ dàng. Để bắt đầu tạo ứng dụng Spring Boot theo phương pháp Opinionated, The Spring Team (The Pivotal Team) cung cấp ba cách tiếp cận sau:
- Sử dụng công cụ Spring Boot CLI.
- Sử dụng Spring STS IDE.
- Sử dụng trang web Spring Initializr.
Chúng ta sẽ lần lượt thảo luận chi tiết từng cách tiếp cận với các ví dụ cụ thể trong những bài viết tới. Bạn có thể tìm thấy trang web Spring Initializr tại: https://start.spring.io/
Với Spring Boot, chúng ta có thể phát triển hai loại ứng dụng dựa trên Spring:
- Ứng dụng dựa trên Java
- Ứng dụng Groovy
Ta có thể dùng Spring Boot CLI, Spring STS IDE, hoặc trang Spring Initializr để phát triển ứng dụng Spring Boot Groovy. Tuy nhiên, để phát triển ứng dụng Java với Spring Boot, ta chỉ có thể dùng Spring STS IDE hoặc trang Spring Initializr.
Về cơ bản, Groovy cũng là một ngôn ngữ sử dụng JVM gần tương tự như Java. Ta có thể kết hợp cả Groovy và Java trong cùng một dự án. Lý do là vì các file Groovy, cũng giống như file Java, cuối cùng đều được biên dịch thành file *.class
. Cả file *.groovy
và *.java
đều được chuyển đổi sang cùng một định dạng bytecode (*.class
).
Mô hình lập trình của Spring Boot Framework được lấy cảm hứng từ mô hình của Groovy. Bên trong nó, Spring Boot sử dụng một số kỹ thuật và công cụ dựa trên Groovy để cung cấp các import và cấu hình mặc định. Spring Boot Framework cũng đã kết hợp các annotation có sẵn của Spring Framework thành những annotation đơn giản hơn. Chúng ta sẽ khám phá từng annotation này trong các bài viết sắp tới với những ví dụ thực tế.
Spring Boot Framework đã thay đổi đáng kể cách lập trình cho các ứng dụng dựa trên Spring-Java. Mặc dù hiện tại nó vẫn đang ở giai đoạn mới phát triển, nhưng tương lai chắc chắn Spring Boot sẽ trở thành xu hướng chủ đạo của hệ sinh thái Spring.