post-image

Tổng quan về Spring Boot. Spring Boot là gì?

Tổng quan

Trong bài viết này, tôi sẽ giới thiệu để các bạn học lập trình Java web hiểu được Spring Boot là gì và các vấn đề chính, giúp bạn đơn giản hóa sử dụng Spring trong phát triển web bằng Java.

Spring Boot là gì?
Spring Boot là gì?

Spring Boot là gì?

Spring Boot là một module của Spring Framework, cung cấp các tính năng RAD (Rapid Application Development) – phát triển ứng dụng nhanh.

TÀI LIỆU HỌC LẬP TRÌNH

Nó giúp cho các lập trình viên chúng ta đơn giản hóa quá trình lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển business cho ứng dụn

Spring Boot dùng để tạo các ứng dụng độc lập dựa trên Spring. Nó không yêu cầu phải cấu hình XML.

Nó là một chuẩn cho cấu hình thiết kế phần mềm, tăng cao năng xuất cho developer.

Những kiến thức cần có khi học Spring Boot

Java Core

Bạn cần nắm vững một số khái niệm về Java trước khi học Spring Boot:

  • Java cơ bản: hàm, biến, loop,…
  • Lập trình hướng đối tượng (OOP).
  • Các tính năng của Java.
  • Collections API: biết cách sử dụng các collection thông dụng.

Ngoài ra, bạn có thể tìm hiểu thêm về Stream API, Asynchronous, Multi threading, File IO.

Package manager

Package manager được cài thêm để quản lý các thư viện khi code dự án Spring Boot. Bạn nên tìm hiểu cách dùng Maven và Gradle cơ bản.

Nếu bạn là người 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, xóa thư viện, chỉnh sửa thông tin của project, các build-in tasks là được. Sau này khi sử dụng nhiều thì bạn tự khắc quen thôi.

THAM GIA KHÓA HỌC LẬP TRÌNH

JPA Hibernate/MongoDB/SQL

Để tạo nên một chương trình, ứng dụng không thể thiếu được Database, do vậy các bạn cần tìm hiểu về:

  • Cách cấu hình database trong Spring Boot
  • Cấu trúc lớp và interface của JPA
  • Tìm hiểu các thao tác cơ bản CRUD.
  • Query creation
  • Thực hiện các câu query phức tạp bằng MongoTemplate.
  • Sắp xếp và phân trang data query được.
  • Thực hiện aggregation

Ưu điểm của Spring Boot

  • Hội tụ đầy đủ các tính năng của Spring framework.
  • Đơn giản hóa cấu hình và xây dựng được các ứng dụng độc lập có khả năng chạy bằng java-jar nhờ các dependency starter. 
  • Dễ dàng deploy vì các ứng dụng server được nhúng trực tiếp vào ứng dụng để tránh những khó khăn khi triển khai lên môi trường production mà không cần thiết phải tải file WAR.

Tổng hợp 200+ tài liệu, sách, bài thực hành, video hướng dẫn lập trình… từ cơ bản đến nâng cao

  • Cấu hình ít, tự động được hỗ trợ bất cứ khi nào cho chức năng spring như tăng năng suất, giảm thời gian viết code và không yêu cầu XML config.
  • Cung cấp nhiều plugin, số liệu, cấu hình ứng dụng từ bên ngoài.

Các features của Spring Boot 

  • SpringApplication: SpringApplication là một class giúp khởi chạy các ứng dụng từ hàm main thuận tiện. Để bắt đầu ứng dụng, bạn chỉ cần gọi các method run.
  • Profiles: Spring Boot Profiles sẽ cung cấp một cách phân chia các cấu hình cho từng môi trường. Các annotation là @Component hoặc @Configuration có thể sẽ được đánh dấu profiles để giới hạn thời điểm hoặc môi trường sẽ được tải lên.
  • Externalized Configuration: Externalized Configuration cho phép bạn có khả năng cấu hình được từ bên ngoài. Vì vậy, một ứng dụng được xây dựng có thể được vận hành và hoạt động trên nhiều môi trường khác nhau. Để thực hiện Externalized Configuration bạn có thể sử dụng các file properties, YAML, các tham số command line hay các biến môi trường.
  • Logging: Spring Boot sử dụng common logging cho tất cả các chức năng log nội bộ. Các depencdeny logging được quản lý mặc định, chúng ta không nên / cần sửa dependency logging nếu khồng có yêu cầu tùy biến (customization) thực sự cần.

Hầu hết các tính năng trên Spring Boot đều lấy từ Spring Framework và thêm một số tính năng khác.

Chúc các bạn thành công~

Tham khảo các bài viết khác: 

https://hocspringboot.net/2021/08/01/spring-data-jpa/

https://hocspringboot.net/2021/08/09/orm-la-gi-tong-quan-ve-orm-framework-2

https://hocspringboot.net/2021/08/03/gioi-thieu-ve-spring-data-jpa/

Leave a Reply

Your email address will not be published. Required fields are marked *