Giới Thiệu Về Spring Boot Là Gì ? Spring Boot Là Gì

1. Giới thiệu Spring Boot

1.1. Spring Boot là gì?

Spring là một Java framework siêu to và khổng lồ, làm được đủ mọi thứ. Nó được chia thành nhiều module, mỗi module làm một chức năng, ví dụ Spring Core, Web, Data access, AOP,… Spring được xây dựng dựa trên 2 khái niệm nền tảng là Dependency injection và AOP (Aspect Oriented Programming).

Đang xem: Spring boot là gì

*

Một rắc rối khi dùng Spring là việc cấu hình (config) dự án quá phức tạp. Bạn phải làm đủ thứ việc chỉ để tạo một web HelloWorld:

Tạo Maven hoặc Gradle projectThêm các thư viện cần thiếtTạo XML để cấu hình project, cấu hình các beanCode và build thành file WARCấu hình Tomcat server để chạy được file WAR vừa build

Đấy, Spring khá mạnh mẽ nhưng việc cấu hình nghe thôi cũng mệt rồi. Do đó Spring boot ra đời, với các ưu điểm:

Auto config: tự động cấu hình thay cho bạn, chỉ cần bắt đầu code và chạy là đượcXây dựng các bean dựa trên annotation thay vì XMLServer Tomcat được nhúng ngay trong file JAR build ra, chỉ cần chạy ở bất kì đâu java chạy được

*

So sánh với Spring, thì Spring Boot bạn chỉ cần:

Dùng Spring Initializr, nhập các info của project, chọn thư viện rồi down code vềMở source code ra và bắt đầu codeChạy ngay trong IDE, hoặc build thành file JAR để chạy được ngay, không cần cấu hình server

1.2. Tại sao nên học Spring Boot?

Trước đây mình đã có tìm hiểu về Node.js và chuyển sang Spring Boot. Cảm nhận của mình là khi code Spring Boot chúng ta sẽ tập trung nhiều hơn vào business logic, nghĩa là mục tiêu của code làm được gì.

Với Node.js, do nó quá linh hoạt nên bạn sẽ phải tập trung nhiều vào code hơn, thay vì mục đích của code. Kiểu như bạn phải tìm “best practice”, “cách tốt nhất” để code điều gì đó.

Nhưng với Spring boot thì khác, có nhiều thư viện có sẵn và cấu trúc code cũng thành chuẩn mực rồi, nên bạn không cần quá quan tâm phải viết code thế nào cho tốt nữa, thay vào đó sẽ tập trung vào logic hơn.

READ:  056 Là Mạng Gì ? Các Thông Tin Chi Tiết Về Sim Đầu Số 056 Của Vietnamobile

*

Mình thấy nhiều bạn hỏi câu này: “Nên học Spring hay Spring Boot trước?”. Theo mình thì nên học Spring Boot trước.

Mình nghĩ tư tưởng của nhiều bạn vẫn mang nặng kiểu “cái cũ tốt hơn cái mới”, “tìm hiểu từ gốc”,… nhưng thực sự khi bắt đầu nên tìm hiểu cái dễ dàng hơn. Vừa đỡ nản, vừa làm được sản phẩm thực tế, trong khi với Spring bạn vẫn còn đang phải cấu hình quá nhiều và chưa làm được gì ra hồn cả.

2. Cần tìm hiểu những gì

2.1. Java Core

Trước khi học Spring Boot thì các bạn cần biết Java. Một số kiến thức cần thiết của Java như sau:

Java cơ bản: biến, hàm, vòng lặp,…Hướng đối tượng (OOP)Java 8: các tính năng mới trong java 8 (tối thiểu phải biết)Collections API: biết cách dùng các collection thông dụng (quan trọng)

Ngoài ra các bạn có thể tìm hiểu thêm (không biết cũng không sao vì Spring Boot khá ít đụng tới):

Stream APIAsynchronousMulti threadingFile IO

2.2. Package manager

Khi code dự án Spring Boot thì cần có package manager để quản lý các thư viện cài thêm. Bạn nào code Javascript sẽ biết về NPM và Yarn, thì Java cũng có hai package manager tương tự là Maven và Gradle.

Tìm hiểu cách dùng Maven cơ bản

Tìm hiểu cách dùng Gradle cơ bản

Phần này khi mới bắt đầu không nên tìm hiểu quá sâu, chỉ cần biết cách cài đặt thư viện, xóa thư viện, chỉnh sửa thông tin project, các build-in tasks là được. Sau này khi đụng tới nhiều thì bạn tự khắc quen thôi.

2.3. Spring Boot

Cách học Spring Boot đúng đắn là học thực hành, làm project. Bởi vì nhiều thứ trong Spring Boot rất dễ, hoặc thành chuẩn mực rồi, chủ yếu là bạn đã từng đụng tới chưa thôi.

Xử lý request trong Controller (phần 2): Trả về lỗi và xử lý chuyên dụng với các loại data đặc biệt.

Validation dữ liệu request – luôn luôn cần thiết

Tổ chức code service trong Spring Boot: bài ngắn gọn nói sơ qua về vai trò của service layer.

READ:  #2021 Arc Là Gì ? Arc Là Viết Tắt Của Từ Gì

Xử lý exception hiệu quả trong Spring Boot: Cách tạo Aspect để bắt exception dù nó ném ra ở bất cứ đâu.

Cấu hình Spring Boot trong file application.properties: đó là gì và kĩ thuật chia cấu hình hiệu quả.

HTML template và static content: Thư mục template và static là gì, có chức năng như thế nào?

Scheduled job trong Spring Boot: Tạo và thực hiện tác vụ theo lịch trình đặt sẵn.

Lập trình hướng khía cạnh AOP không khó như bạn nghĩ: Tìm hiểu về AOP, các khái niệm liên quan và thực hiện một demo logging cơ bản.

2.4. JPA/MongoDB

Mình chỉ mới làm quen với Spring Boot được 6 tháng, và project mình làm chỉ về MongoDB thôi. Còn về SQL thì mình sẽ làm sau nhé

*

Cách cấu hình database trong Spring Boot: Tạo DB, thêm các thông số kết nối và kết nối.

Xem thêm: Cách Bỏ Gạch Chân Trong Word 2010, 2013, 2016, Bỏ Gạch Đỏ Trong Word 2016 2013 2007 2010

Cấu trúc lớp và interface của JPA: JPA/MongoDB gồm những interface, class nào, phân cấp ra sau và chức năng của chúng.

CRUD cơ bản: Tìm hiểu các thao tác cơ bản CRUD.

Thực hiện các câu query phức tạp bằng MongoTemplate: Sử dụng MongoTemplate và các đối tượng như Query, Update,… để thực hiện các hành động phức tạp hơn với query.

Sắp xếp và phân trang data query được: Sort và paging dữ liệu query, đặc biệt là custom paging bằng skip và limit.

Thực hiện aggregation: Tổng hợp dữ liệu trong MongoDB

2.5. Template engine

Template engine xử lý phần View trong ứng dụng MVC, trong Spring Boot thì chúng ta sử dụng template engine để pass dữ liệu vào View và trả về một trang HTML.

Trả về trang HTML cơ bản trong Spring Boot

Sử dụng Thymeleaf trong Spring Boot

Sử dụng JSP trong Spring Boot

2.6. Các tool khác

Ngoài ra, trong dự án Spring Boot sẽ cần một số tool khác được embed vào code. Và bạn cần biết cấu hình và sử dụng chúng để nâng cao năng suất code.

Cấu hình và sử dụng Swagger trong Spring Boot: Swagger là một tool dùng để xem, chạy, test các API tương tự Postman. Đặc biệt là nó được kèm theo trong chính project của bạn, nó sẽ tự động phân tích metadata của code và sinh API. Ngoài ra Swagger còn có thể generate document từ code của bạn.

READ:  Owo Ôwô Ơwơ Uwu Là Gì ? What Is The Meaning Of Uwu

Thiết lập Logger cho project Spring Boot

Lombok – viết code Java ngắn hơn

Cấu hình Spring Actuator: Công cụ giám sát, theo dõi tình trạng web service Spring Boot. Actuator sẽ thêm 1 số API để bạn dùng, ví dụ /info hoặc /health để check tình trạng hoạt động của project.

Quarzt – giải pháp thay thế cho Spring Schedule

Cấu hình Firebase trong Spring Boot: Sử dụng các tính năng của Firebase như Authentication, Firestore, Storage,… trong dự án Spring Boot.

Cấu hình Spring Boot devtools: Để có được các tính năng như HotReload.

2.7. Nâng cao

Unit testing: Sử dụng JUnit để test ứng dụng Spring Boot.

Xuất file Excel trong Spring Boot: Sử dụng Apache POI để tạo và xuất file Excel.

Cách thêm SSL cho Spring Boot: Làm cho API của bạn hỗ trợ HTTPS

Cách gửi mail trong Spring Boot

Cách cấu hình trang 404 và white page

2.8. What”s next?

Sau khi đã nắm được đủ các kiến thức trên, các bạn có thể tìm hiểu thêm một số thứ khác liên quan Spring Boot.

Tìm hiểu Spring Security cơ bản

Xác thực người dùng trong Spring Security bằng session

Xác thực người dùng trong Spring Security bằng JWT

Spring batch là gì?

Spring reactive web: Web framework bất đồng bộ tương tự Node.js nhưng là Java.

Spring Boot mặc định sử dụng ngôn ngữ Java, các bạn có thể tìm hiểu thêm về Kotlin cũng khá hay.

Xem thêm: Sinh Ngày 12/3 Là Cung Gì ? Người Sinh 12 Tháng 3 Là Cung Hoàng Đạo Gì

3. Good resources

Các trang web học Java và Spring Boot khá tốt:

À quên nữa, nếu các bạn có thắc mắc hoặc có gì đó cần bổ sung vào series thì hãy comment bên dưới nhé. Nó sẽ giúp mình hoàn thiện series cũng như kiến thức nữa.

Xem thêm bài viết thuộc chuyên mục: tin tổng hợp