Xin chào, mình là Sơn, hiện đang là lập trình viên Java, đây là blog đầu tiên của mình về thứ mình vẫn gắn bó hàng ngày, Spring Boot. Ở bài đầu tiên này mình sẽ chia sẻ một chút về Spring và Spring Boot, cũng như vì sao lập trình viên Java, và những người mới đi làm nên học về công nghệ này. Cùng đọc nhé.

Spring là gì?

Là một lập trình viên Java, có lẽ bạn đã từng ít nhất một lần nghe thấy từ Spring từ khi còn ngồi trên ghế giảng đường đại học, nếu không thì là trong thời gian đi làm sau này. Spring thực sự là một cái tên đã trở nên quá đỗi quen thuộc với cộng đồng Java, đặc biệt là những nhà phát triển Web.

Khái niệm Spring đã được rất nhiều nơi nhắc đến nên mình xin nhắc lại ngắn gọn, Spring là một framework mã nguồn mở hỗ trợ phát triển các ứng dụng Java được phát hành từ năm 2002, đã trở nên rất thông dụng và phổ biến với các lập trình viên Java nhờ các tính năng hữu ích của nó.

Về cấu trúc, Spring Framework bao gồm các modules như sau:

Nguồn: docs.spring.io
Nguồn: docs.spring.io

Nhờ những modules này, Spring Framework giúp các nhà phát triển tiết kiệm được rất nhiều thời gian để viết boilerplate code nhờ làm việc qua các POJOs, giúp họ phần nào trở nên “yêu đời” hơn khi thoát khỏi việc viết những đoạn code cấu hình ngày này qua ngày khác. Ngoài ra, do là một dự án mã nguồn mở nên Spring có một cộng đồng hỗ trợ và phát triển rất mạnh, luôn luôn đổi mới để đảm bảo những nhu cầu ngày càng lớn của các lập trình viên.

Vậy còn Spring Boot?

Nếu để ý, có lẽ bạn sẽ nhận ra rằng trong các modules được liệt kê trong hình ảnh trên không bao gồm cái tên Spring Boot, liệu đây có phải là một sự nhầm lẫn, dù hình ảnh trên mình lấy từ trang tài liệu chính thức của Spring Framework?

Nguồn: huongdanjava.com
Nguồn: huongdanjava.com

Câu trả lời là không, vì Spring Boot là một dự án độc lập được phát triển trong hệ sinh thái Spring. Nó giúp chúng ta giảm tối đa những bước cấu hình và thiết lập, tập trung được thời gian cho việc phát triển nghiệp vụ ứng dụng.

Ở phần đầu mình đã đề cập đến lợi ích của Spring Framework là giúp giảm thiểu phần code thiết lập, cấu hình (boilerplate) cho lập trình viên. Tuy nhiên, Spring Framework vẫn là một framework rất lớn và rộng, làm đủ mọi thứ nên công việc cấu hình tuy được giảm thiểu so với việc không sử dụng framework này nhưng vẫn rất phức tạp, đó chính là lý do Spring Boot được ra đời.

Để hiểu rõ hơn sự tiện lợi của Spring Boot so với chính Spring Framework, hãy so sánh quy trình khi cấu hình một ứng dụng web Hello World đơn giản bằng 2 framework này:

Với Spring Framework, bạn sẽ phải cấu hình khá nhiều thứ như:

  • Tạo project (Maven hoặc Gradle)
  • Thêm các thư viện cần thiết cho project
  • Cấu hình project qua file XML
  • Code (và build thành file WAR)
  • Cấu hình server để chạy ứng dụng web vừa build

Có thể thấy riêng việc cấu hình cho project với Spring đã tốn kha khá bước và thời gian, với Spring Boot, y như ý nghĩa logo của nó, chỉ cần làm vài bước ngắn gọn như việc bật công tắc, bạn đã có thể tạo và cấu hình xong project của mình.

Với Spring Boot, các bước để cấu hình như sau:

Sử dụng Spring Initializr hoặc công cụ tương đương có sẵn trong IDE (IntelliJ hoặc Spring Tools Suite) để khởi tạo project và download về

Thực hiện code

Chạy ngay trong IDE hoặc build thành file JAR mà không cần cấu hình server

Giao diện của Spring Initializr
Giao diện của Spring Initializr

Như vậy là Spring Boot gần như đã “làm hộ” chúng ta tất cả các bước cầu hình phức tạp như đã đề cập phía Spring Framework, giúp chúng ta yên tâm code những nghiệp vụ của sản phẩm mà không phải bận tâm những công việc lặp lại và dễ gây chán nản đó nữa.

Mới đi làm thì nên học cái gì trước?

Mình ra trường cuối năm 2019 và bắt đầu đi làm từ đầu năm 2020, tính đến nay cũng được 2 năm gắn bó với Spring Boot qua các dự án tại công ty. Trước đó tại trường đại học thì mình không học các framework Spring trên lớp nên mãi khi chuẩn bị đi làm và do yêu cầu công việc, mình mới dành thời gian để tìm hiểu và học chúng.

Theo cá nhân mình, để có thể đáp ứng kịp thời yêu cầu của công việc, ta nên học Spring Boot trước vì nó dễ dàng, dễ hiểu và ngắn gọn hơn. Do đó, chúng ta có thể có được các sản phẩm demo khi học nhanh hơn, tạo hứng thú nghiên cứu học hỏi và đỡ bị nản chí. Tuy nhiên, nếu có thời gian và muốn hiểu sâu hơn nguyên lý, cấu trúc và cách vận hành của Spring, bạn vẫn nên đầu tư công sức để tìm hiểu về nó. Vì Spring Boot thì vẫn là một sản phẩm của hệ sinh thái Spring nên qua việc học kĩ hơn Spring, bạn sẽ có thêm những kiến thức chắc chắn về Spring Boot và những modules khác của framework, rất hữu ích cho tương lai sau này.

Mỗi người có thể có một suy nghĩ riêng nhưng với mình, mình nghĩ nên học Spring Boot trước giúp bạn có các sản phẩm thực tế nhanh hơn trong khi cùng lượng thời gian đó, có thể bạn vẫn đang lúng túng trong việc cấu hình project Spring của mình.

Một số trang web để học Spring Boot

Baeldung: một trang web đã quá nổi tiếng với những người học Spring với các bài giảng chất lượng, phong phú và source code miễn phí trên GitHub

Udemy: trang web cũng rất nổi tiếng trong lĩnh vực học online, trước khi đi làm thì mình có học một khóa trên đây và thấy rất đầy đủ và hiệu quả, mọi người có thể xem thử tại đây: https://www.udemy.com/course/microservices-with-spring-boot-and-spring-cloud/

Tutorialspoint: trang web quen thuộc với những lập trình viên, lúc mới tìm hiểu mình cũng đọc trên này nhưng chủ yếu kiến thức trên đây là cơ bản và tóm tắt nên không sâu, vẫn nên tìm hiểu thêm ở nguồn khác

Lời kết

Đây là bài viết đầu tiên của mình, cảm ơn các bạn đã đọc, hy vọng sẽ tiếp tục nhận được sự ủng hộ của các bạn trong các bài viết tới của mình về Spring Boot nhé, xin chào.

Lê Sơn,

Tham khảo Lộ trình Java FullStack với Spring Boot cho người mới bắt đầu:

Khóa học - tại đây

Liên hệ: Ms Mẫn - 0963023185 (zalo)