Chuyển đến nội dung chính

  Giới thiệu về Spring Integration

Giới thiệu

     Spring Integration là một framework cho phép việc cấu hình động các tầng của hệ thống. 
Nó giúp cho việc cấu hình linh động, dàn xếp các module trở nên độc lập, dễ dàng thay đổi phù hợp mục đích nâng cấp (xem hình 1 )

Hình - 1


   Spring Integration cho phép nhắn tin giữa các module dựa trên Spring-based applications và nó hỗ trợ tích hợp với các hệ thông bên ngoài thông qua bộ khai báo. Mục đích chính của Spring Integration là cung cấp một mô hình đơn giản để xây dựng các giải pháp tích hợp doanh nghiệp trong khi vẫn duy trì cac mối liên kết cần thiết để có thể kiểm tra, bảo trì.
   Nó đưa khái niệm về POJO lên thêm một bước nữa, nơi mà POJO được kết nối với nhau bằng cách sử dụng một mô hình nhắn tin và các thành phần riêng lẻ không thể nhận biết được các thành phần khác trong ứng dụng. Một ứng dụng được xây dựng bằng cách lắp ráp các thành phần, có thể tái sử dụng, tạo thành các chức năng mới.

  Channel trong Spring integration đơn giản giống như một đường ống trong tổng thể kiến trúc của hệ thống, là thứ sẽ chuyển tiếp từ một hệ thống sang những hệ thống khác.
   Một trong những nền tảng mẫu của spring integration là thư viện Messaging.  

public interface Message<T> {
    T getPayload();
    MessageHeaders getHeaders();
}

   Interface org.springframework.integration.Message định nghĩa spring message: đơn vị truyền dữ liệu trong Spring Integration context. Message channel được tách riêng ra thành các components và cung cấp điểm thuận lợi cho cơ chế đánh chặn Interception và giám sát các message.
@Bean
public MessageChannel pubSubFileChannel() {
    return new PublishSubscribeChannel();
}
 
@Bean
@InboundChannelAdapter(value = "pubSubFileChannel", poller = @Poller(fixedDelay = "1000"))
public MessageSource<File> fileReadingMessageSource() {
    FileReadingMessageSource sourceReader = new FileReadingMessageSource();
    sourceReader.setDirectory(new File(INPUT_DIR));
    sourceReader.setFilter(new SimplePatternFileListFilter(FILE_PATTERN));
    return sourceReader;
}

   Bridge trong Spring Integration được sử dụng để kết nối giữa 2 message channels hoặc cho bộ điều khiển nếu trong trường hợp chúng không thể kết nối. 

@Bean
@BridgeFrom(value = "pubSubFileChannel")
public MessageChannel fileChannel1() {
    return new DirectChannel();
}
 
@Bean
@BridgeFrom(value = "pubSubFileChannel")
public MessageChannel fileChannel2() {
    return new DirectChannel();
}
 
@Bean
@BridgeFrom(value = "pubSubFileChannel")
public MessageChannel fileChannel3() {
    return new DirectChannel();
}

   Service Activator là bất kỳ POJO nào định nghĩa @ServiceActivator annotain trong một method . Nó cho phép chúng ta chạy bất kỳ method nào trong POJO khi một message được nhận từ vố số channel, và chúng cho phép chúng ta viết message để kết nối với một channel bên ngoài.

   Adapter là một thành phần dựa trên một mẫu thành phần cơ bản nó cho phép một thành phần "cắm" vào hệ thống hoặc vào nguồn dữ liệu. Nó giống như một bộ chuyển đổi, cho phép kết nối tái sử dụng với các hệ thống "black-box" khác như cơ sở dữ liệu, máy chủ FTP và hệ thống nhắn tin như JMS, AMQP, và các mạng xã hội như Twitter. Adapter được chia thành hai loại inbound và outbound.





Nhận xét

Bài đăng phổ biến từ blog này

Đa ngôn ngữ trong Angular  Trong phần này mình sẽ thêm chức năng đa ngôn ngữ cho project angular. Chúng ta sử dụng thư viện @ngx-translate cho bài viết, bạn có thể tham khảo ở  @ngx-translate   Trước tiên chúng ta cần tạo project và import thư viện: ng new angular-translate cd  angular-translate npm install @ngx-translate/core --save npm install @ngx-translate/http-loader --save Sau đó chúng ta import thư viện  TranslateModule  vào app.module.ts: -Tiếp đó chúng ta tao 2 file en.json và vn.json vào thư mục /assets/i18n/en.json -Tiếp đó chúng ta thiết lập sự kiện click chuyển ngôn ngữ trong file app.component.ts: - Để hiển thị trên giao diện, chúng ta sử dụng service TranslateService đã được khai báo trong contructor() như một pipe: Kết quả : Bằng việc truyền value vào event switchLanguage() chúng ta có thể thay đổi ngôn ngữ của trang Như vậy chúng ta đã hoàn thành xong việ...
Get data from an API service in Angular  1. Promises và Observables  Promises:     Là một đối tượng được lập trình để thao tác bất đồng bộ trong Javascript. Nó đại diện cho một giá trị mà chúng ta muốn thao tác nhưng có thể hiện tại chưa có sẵn nhưng trong tương lại nó có giá trị trong promise đó. Một số đặc điểm của promise là: - Chỉ trả về một giá trị duy nhất, đó có thể là object, array, number.... - Không thể cancel được request - Được khởi tạo ngay mặc dù chưa được đăng ký, miễn là bạn khai báo một promise thì nó sẽ chạy contructor. Promise có ba trạng thái : Pending: khi khởi tạo đối tượng promise, gọi một request đến server. Fulfilled: thao tác gọi đến server thành công sẽ chuyển từ pending sang fulfilled qua phương thức then() (có thể xử lý kết quả thành công trong phương thức then() ). Rejected: khi request đến server bị lỗi, có thể dùng .catch() để bắt lỗi. Observables:     Tương tự như promise nhưng có mộ...