Hướng dẫn spring boot javascript example - ví dụ về javascript khởi động mùa xuân

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).

Hướng dẫn spring boot javascript example - ví dụ về javascript khởi động mùa xuân

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 project
  • Thêm các thư viện cần thiết
  • Tạo XML để cấu hình project, cấu hình các bean
  • Code và build thành file WAR
  • Cấ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à được
  • Xây dựng các bean dựa trên annotation thay vì XML
  • Server Tomcat được nhúng ngay trong file JAR build ra, chỉ cần chạy ở bất kì đâu java chạy được

Hướng dẫn spring boot javascript example - ví dụ về javascript khởi động mùa xuân

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 code
  • Chạ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.

Hướng dẫn spring boot javascript example - ví dụ về javascript khởi động mùa xuân

  • 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.

  • 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.

  • Query creation: Tự động sinh câu query dựa trên tên method, hoặc bạn có thể custom nó bằng @Query.

  • 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.

  • 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.

3. Good resources

Bên cạnh series này còn có rất nhiều nơi khác viết bài về Spring Boot khá ok. Ví dụ như các trang sau:

  • Series "Làm chủ Spring Boot từ Zero đến Hero" của Loda.me: Trước mình làm quen với Spring Boot ở trang này, viết khá dễ hiểu và phù hợp với người mới.
  • Laptrinhjavaweb.com: trang này giúp bạn có cái nhìn tổng quan về Java web.
  • Stackjava.com: muốn tìm hiểu thêm các khía cạnh khác thì lên trang này đọc nhé.

Thêm các trang tiếng Anh nữa:

  • Baedung.com: bạn nào học lâu chắc biết trang này rồi, nhiều bài hay về Spring, bao phủ khá toàn diện. Hầu như vấn đề nào gặp phải đều có bài viết trên đây.
  • Vlad Mihalcea: ông này chuyên về xử lý database trong Java, muốn tìm hiểu sâu thì đọc.

Còn vài trang nữa như Dzone,... mà mình không liệt kê hết ở đây.

À 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.