Spring Java Là Gì - Giới Thiệu Spring Framework - OLP Tiếng Anh
Có thể bạn quan tâm
Trong bài viết này, mình sẽ giới thiệu cho các bạn về một trong số những Java EE framework rất nổi bật và thường nhật hiện nay, đó chính là Spring Framework.
Spring là một framework giúp các nhà phát triển xây dựng những hệ thống và ứng dụng chạy trên JVM một cách đơn giản, tiện gọn, nhanh chóng và mềm dẻo.
1. Đôi nét về lịch sử
1.1. EJB và Spring
khả năng nói rằng Spring Framework ra đời là nhờ sự thành công của EJB. EJB (Enterprise JavaBeans) là một kiến trúc phát triển dành cho các ứng dụng công ty đòi hỏi tính mạnh mẽ và khả năng mở rộng cao. EJB là một thành phần quan trọng của nền tảng Java EE. EJB được tạo ra bởi hai gã khổng lồ công nghệ là IBM và Sun vào những năm cuối thập niên 90. Dưới sự phát triển của hai tập đoàn này, EJB đã trở nên nặng nề hơn. Tiêu chuẩn EJB cũng nhanh chóng được thông qua. Sau tất cả, EJB được ca ngợi là giải pháp tốt nhất để xây dựng các ứng dụng phân tán dành cho công ty.
Nhưng rồi những chỉ trích về chi tiết kỹ thuật của EJB đã tăng nhanh còn hơn sự nổi tiếng của nó. EJB là một framework lớn với độ phức tạp cao. Các nhà phát triền khi làm việc với EJB đã nhận ra rằng nó không vận hành như những gì nó đã đề ra. EJB chỉ tuyệt vời trên bàn giấy, nhưng ra thực tế đó lại là một chuyện khác.
Bạn đang xem: Spring java là gì
EJB vẫn được tiếp tục phát triển, dễ dùng hơn nhiều so với buổi ban đầu. Nhưng những chỉ trích vẫn còn đó, nỗi thất vọng trong cộng đồng Java ngày càng tăng lên, đòi hỏi cần có một giải pháp thay thế.
1.2. Sự ra đời của Spring
Vào năm 2002, Spring Framework phát hành phiên bản đầu tiên bởi Rod Johnson. Việc xây dựng các ứng dụng công ty trở nên đơn giản và đơn giản hơn. Rod Johnson đã cho xuất bản một cuốn sách được thường nhật rộng rãi có nhan đề “J2EE Development without EJB”. Điều này đã cho Spring Framework rất nhiều động lực để thay thế EJB.
Theo đà phát triển đó, Spring đã trở thành framework mã nguồn mở thường nhật nhất để xây dựng các ứng dụng công ty. Cách tiếp cận thực tế ban đầu của Rod Johnson tiếp tục được phát triển và hướng tới một bộ công cụ hoàn chỉnh dành cho xây dựng các ứng dụng công ty. Theo một vài nguồn, trên 50% các ứng dụng web Java hiện nay đang dùng Spring.
Để ngăn chặn sự phức tạp trong phát triển các ứng dụng, Spring Framework thường dựa trên các quan điểm như sau:
đơn giản hóa công việc phát triển thông qua việc dùng các POJO (Plain Old Java Object)Nới lỏng ràng buộc giữa các thành phần thông qua việc dùng Dependency InjectionGiảm thiểu các mã boilerplate thông qua việc dùng template và aspect …
2. Spring Core
Spring Core là thành phần cốt lõi của Spring Framework. Đây chính là nền tảng để xây dựng nên các thành phần khác trong hệ sinh thái của Spring Framework.
Lược đồ dưới đây mô tả mối quan hệ giữa Spring Core với các thành phần khác trong Spring Framework:
2.1. Spring Bean
Spring Bean là trung tâm của Spring Core và là trái tim của một ứng dụng Spring. Trái ngược với EJB, Spring Framework được thiết kế từ lõi bằng cách dùng các POJO hay các Spring Bean. Spring Bean khả năng được hiểu là các đối tượng Java đơn giản. Điều này khá tương đồng với nguyên lý thiết kế “Đơn trách nhiệm” (single responsibility) của Robert C Martin trong lập trình hướng đối tượng.
2.2. Dependency Injection (DI)
Dependency Injection (khả năng dịch tiêm các thành phần phụ thuộc) là một sức mạnh nổi bật của Spring Framework. Trong các phiên bản gốc của EJB người ta không thấy sự xuất hiện của Dependency Injection, nhưng có lẽ do nhận thấy sự thành công từ Spring khi dùng Dependency Injection, các phiên bản EJB 3.x đã cung cấp các annotation để thực hiện inject các dependency. Dependency Injection là một mẫu thiết kế phần mềm mà các đối tượng phụ thuộc sẽ được inject vào một lớp nào đó. Dependency Injection là một implementation chi tiết của khái niệm Inversion of Control (đảo ngược điều khiển).
Ta sẽ có một ví dụ đơn giản về Dependency Injection như sau: Bạn có một web controller có nhiệm vụ lưu thông tin gửi từ form của người dùng. Theo nguyên lý Đơn trách nhiệm nói trên, bạn không muốn lớp controller tương tác với cơ sở dữ liệu. Thay vào đó, bạn sẽ dùng một lớp service để làm công việc này. Như vậy, controller của bạn sẽ chỉ phải xử lý dữ liệu của form (get form data, validate data, …) rồi gọi một phưong thức của lớp service được inject để lưu dữ liệu. Controller không cần phải quan tâm hay lo lắng về kết nối cơ sở dữ liệu, pooling hay bảng nào sẽ được update. Cũng như service không cần phải biết request có những thông tin gì.
2.3. Spring Context
Spring Context mang mọi thứ lại với nhau. Spring Context kế thừa các tính năng của Spring Bean và bổ sung các hỗ trợ cho internationalization (ví dụ như các resource bundle), event propagation, resource loading… mặt khác, Spring Context cũng hỗ trợ các tính năng của Java EE như EJB, JMX và RMI. Interface ApplicationContext chính là trọng tâm của Spring Context.
2.4. Spring Expression Language (SpEL)
Spring Expression Language là một ngôn ngữ ngắn gọn giúp cho việc cấu hình Spring Framework trở nên linh động hơn.
3. Các dự án trong Spring Framework
Trên thực tế Spring Framework là một tập hợp của nhiều dự án con. Spring Core như chúng ta đã tìm hiểu là nền tảng của các dự án trong Spring Framework. Một một dự án sẽ đảm nhận một chức năng riêng trong việc xây dựng các ứng dụng công ty. Chúng ta sẽ cùng điểm qua các dự án lớn trong Spring.
Xem thêm: Daebak Là Gì – Daebak Có Nghĩa Là Gì
Spring MVC
Spring MVC được thiết kế dành cho việc xây dựng các ứng dụng nền tảng web. Đây là một dự án chúng ta không thể bỏ qua khi xây dựng các ứng dụng Java web.
Spring Data
Cung cấp một cách tiếp cận đúng đắn để truy cập dữ liệu từ cơ sở dữ liệu quan hệ, phi quan hệ, map-reduce và thậm chí còn hơn thế nữa.
Spring Security
Dự án này cung cấp các cơ chế xác thực (authentication) và phân quyền (authorization) cho ứng dụng của bạn.
Spring Boot
Spring Boot là một framework giúp chúng ta phát triển cũng như chạy ứng dụng một cách nhanh chóng.
Spring Batch
Dự án này giúp chúng ta đơn giản tạo các lịch trình (scheduling) và tiến trình (processing) cho các công việc xử lý theo mẻ (batch job).
Spring Integration
Spring Integration là một implementation của Enterprise Integration Patterns (EIP). Dự án này thiết kế một kiến trúc hướng thông điệp hỗ trợ việc tích hợp các hệ thống bên ngoài.
Spring Social
Dự án này sẽ kết nối ứng dụng của bạn với các API bên thứ ba của Facebook, Twitter, Linkedin …
Xem thêm: Dubstep Là Gì – Cách Phân Biệt Trap Và Dubstep
Các dự án trên đây mới chỉ là các dự án lớn trong Spring Framework, các bạn khả năng tìm hiểu các dự án khác tại tại đây.
Chuyên mục: Hỏi Đáp
Từ khóa » Tìm Hiểu Về Java Spring
-
Hiểu Biết Cơ Bản Về Spring Framework Cho Người Mới Bắt đầu
-
Tổng Quan Về Spring Framework - Viblo
-
Spring Là Gì? - VietTuts
-
Spring Là Gì? Lợi ích Mà Spring Mang Lại Cho Người Dùng - ITNavi
-
Hướng Dẫn Lập Trình Spring Cho Người Mới Bắt đầu - Openplanning
-
Spring Framework Là Gì ? Tổng Quan Spring Mvc, Spring Boot Trong ...
-
Giới Thiệu Về Spring Boot. Spring Boot Là Gì? | TopDev
-
Spring Framework Cơ Bản - Hướng Dẫn Java
-
Tìm Hiểu Về Spring Của Java - TỰ HỌC LẬP TRÌNH
-
Câu Hỏi Phỏng Vấn Java Spring: Spring Framework, Boot & MVC
-
Spring Framework Là Gì? Lợi ích Khi Sử Dụng Và Các Nội Dung Cơ Bản
-
Spring Boot Là Gì? Giải Mã Các Thông Tin Về Framework Sring Boot
-
Giới Thiệu Về Spring - KungFu Tech