Spring boot: #01 Tìm hiểu về Spring Framework

Spring boot: #01 Tìm hiểu về Spring Framework

19/10/2020 Off By dat09

Spring framework là một Java Platform mã nguồn mở, một giải pháp gọn nhẹ dành cho Java Enterprise. Với Spring Framework các nhà phát triển có thể tạo ra các mã có hiệu suất cao, dễ kiểm thử và có thể sử dụng lại được.

Spring là framework phát triển ứng dụng phổ biến nhất dành cho Java Enterprise. Ban đầu nó được viết bởi Rod Johnson và lần đầu tiên được phát hành theo giấy phép Apache 2.0 vào tháng 6 năm 2003. Spring có dung lượng khá nhẹ, phiên bản cơ bản của Spring framework khoảng 2MB.

Các tính năng core của Spring Framework có thể được sử dụng trong việc phát triển bất kỳ ứng dụng Java nào. Bên cạnh đó, phần mở rộng được sử dụng để xây dựng các ứng dụng web trên nền tảng Java EE.

Một trong những mục tiêu thiết kế Spring Framework là làm cho nó dễ dàng tích hợp với tiêu chuấn J2EE với các bộ công cụ có sẵn trên thị trường hiện nay cũng như thúc đẩy việc lập trình tốt hơn bằng mô hình POJO-based.



# Data Access/integration

Layer này cung cấp các component để hỗ trợ làm việc với data base

ComponentDescription
JDBC(Java Database Connectivity)Cung cấp một bộ Java API để truy cập cơ sở dữ liệu quan hệ từ chương trình Java. Các API Java này cho phép các chương trình Java thực hiện câu lệnh SQL và tương tác với bất kỳ cơ sở dữ liệu tương thích SQL nào, giảm thiểu chi phí phát triển cho developer
ORM(Object Relational Mapping)Là một kỹ thuật lập trình để chuyển đổi dữ liệu giữa các cơ sở dữ liệu quan hệ và các ngôn ngữ lập trình hướng đối tượng như Java, C# …
Cung cấp lớp tích hợp với các ORM APIs phổ biến như JPA, JDO và Hibernate
JMS(Java Message Service)Module cung cấp các chức năng cho việc gửi và nhận message
OXMTODO: Cùng tìm hiểu sau nhé …
TransactionsModule hỗ trợ lập trình và quản lí transaction

# Web

Hay còn gọi là Spring MVC Nhóm này gồm Web, Web-Servlet… hỗ trợ việc tạo ứng dụng web.

Component Description
WebSocketModule cung cấp hỗ trợ cho giao tiếp hai chiều(two-way) dựa trên WebSocket giữa client và server trong các ứng dụng web.
ServletServlet được sử dụng để tạo ra ứng dụng web (nằm ở phía máy chủ và tạo ra trang web động)
WebModule cung cấp các tính năng tích hợp hướng web cơ bản như chức năng multipart file-upload và khởi tạo IoC container bằng servlet listeners và web-oriented application context.
PortletModule cung cấp việc triển khai MVC để được sử dụng trong môi trường portlet

# Core Container

Core container cung cấp chức năng cơ bản của Spring. Thành phần chính của nó là Bean Factory, một cài đặt của Factory pattern. BeanFactory áp dụng IoC pattern để đặc tả sự phụ thuộc từ code của ứng dụng.

ComponentDescription
Bean, CoreModule spring-core và spring-beans cung cấp những phần cơ bản của framework, bao gồm IoC và Dependency Injection.
ContextModule spring-context được sử dụng để truy cập vào các đối tượng trong framework-style tương tự như việc đăng ký một JNDI. 
spring-context-support hỗ trợ tích hợp libraries của bên thứ 3 (third-party) vào ứng dụng Spring như caching (EhCache, Guava, JCache), mailing (JavaMail), schedule (CommonJ, Quatz) và các template engine (FreeMarker, JasperReports, Velocity)).
SpELTODO: Cùng tìm hiểu sau nhé …

# Các module khác

Có vài module quan trọng khác như module AOP, Các khía cạnh, Instrumentation, Web và Test mô tả chi tiết như sau:

ComponentDescription
AOP Module AOP cung cấp một thực hiện lập trình hướng khía cạnh cho phép bạn xác định phương pháp-chặn và pointcuts để sạch tách mã thực hiện chức năng đó nên được tách ra.
Aspects Module Aspects cung cấp tích hợp với AspectJ, mà lại là một khuôn khổ AOP mạnh mẽ.
Instrumentation TODO: Cùng tìm hiểu sau nhé …
Messaging Module Messaging cung cấp hỗ trợ cho STOMP như WebSocket sub-protocol để sử dụng trong các ứng dụng. Nó cũng hỗ trợ một mô hình lập trình chú thích cho việc định tuyến và xử lý tin nhắn STOMP từ các máy khách WebSocket.
Test Module Test hỗ trợ việc kiểm tra các thành phần của spring với JUnit hoặc TestNG