Kiến trúc và module của Spring

Kiến trúc và module của Spring

Nội dung bài viết

kien truc Spring

Kiến trúc Spring được tổ chức theo kiểu module. Mặc dù khá là nhiều nhưng bạn chỉ cần quan tâm đến những gì bạn cần dùng đến và mình sẽ giới thiệu chi tiết ở phần dưới.

Dependency Injection và Inversion of Control

  • Dependency Injection (DI) là một design pattern để loại bỏ sự phụ thuộc lẫn nhau giữa những đoạn code (ví dụ: các hàm các class,..), vì vậy nó giúp rễ ràng quản lý, mở rộng code và test ứng dụng.

  • Inversion of Control (IoC) Container có trách nhiệm khởi tạo, configure, gắn kết các đối tượng. Có hai kiểu của IoC containers là BeanFactoryApplicationContext.

Các module của Spring Framework

Spring Framework bao gồm nhiều tính năng được tổ chức thành khoảng 20 module. Nó được chia như sau: module Spring

Test

hỗ trợ việc kiểm tra các thành phần Spring với JUnit hoặc TestNG khuôn khổ.

Core Container

Core Container bao gồm các module: spring-core , spring-beans, spring-context, và spring-expression (Spring Expression Language).

  • spring-corespring-beans cung cấp những phần cơ bản của framework, bao gồm IoCDependency Injection Spring Bean là center của Spring Core

và được coi như là linh hồn của Spring Application.

  • spring-context hỗ trợ đa ngôn ngữ (internationalization), các tính năng Java EE như EJB, JMX.
  • spring-expression được mở rộng từ Expression Language trong JSP. Nó cung cấp hỗ trợ việc setting/getting giá trị, các method cải tiến cho phép truy cập collections, index, các toán tử logic v.v.

Data Access/Integration

Data Access/Integration bao gồm các module JDBC, ORM, OXM, JMS và Transaction.

  • Module spring-jdbc cung cấp một lớp JDBC-abstraction để loại bỏ những code tẻ nhạt cả JDBC và phân tích những mã lỗi cụ thể của database-vendor.
  • Module spring-orm cung cấp lớp tích hợp với các orm API phổ biến như JPA, JDO và Hibernate.
  • Module spring-oxm cung cấp lớp abstraction hỗ trợ triển khai Object/XML mapping như AXB, Castor, XMLBeans, JiBX and XStream.
  • Module spring-jms chứa các tính năng tạo và sử dụng các message. Từ Spring Framework 4.1, nó được tích hợp với spring-messaging.
  • Module spring-transaction hỗ trợ quản lý giao dịch theo chương trình và khai báo cho các lớp mà thực hiện các giao diện đặc biệt và cho tất cả các POJO của bạn.

Web

Hay còn được gọi là Spring MVC để hỗ trợ việc tạo ứng dụng Web, bao gồm: spring-web , spring-webmvc, spring-websocketspringwebmvc-portlet.

  • Module spring-web cung cấp tính năng tích hợp web theo định hướng cơ bản như chức năng tập tin tải lên nhiều phần dữ liệu và khởi tạo các **container

IoC** sử dụng nghe servlet và một bối cảnh ứng dụng web theo định hướng.

  • Module spring-webmvc bao gồm việc triển khai Model-View-Controller (MVC) của Spring cho các ứng dụng web.
  • Module spring-websocket cung cấp hỗ trợ cho WebSocket-based, giao tiếp hai chiều giữa client và server trong các ứng dụng web.
  • Module springwebmvc-portlet cung cấp việc triển khai MVC được sử dụng trong môi trường portlet và ánh xạ chức năng của module Web-Servlet.

AOP, Aspects, Instrumentation và Messaging

Những module này hỗ trợ cài đặt lập trình hướng khía cạnh (Aspect Oriented Programming), hỗ trợ tích hợp với AspectJ.

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

  • 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ẽ và trưởng thành.
  • Module Instrumentation cung cấp thiết bị đo đạc lớp hỗ trợ và triển khai lớp bộ nạp được sử dụng trong các máy chủ ứng dụng nhất định.
  • 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.

Avatar Techmely Team
VIẾT BỞI

Techmely Team