日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Integration Framework简介

發布時間:2023/12/3 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Integration Framework简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們非常了解Spring框架和JMS 。 在本文中,我們將介紹稱為Spring Integration的企業集成框架 。 Spring Integration是一個開源企業集成框架,可增強Spring單獨完成的功能。 Spring Integration構建在Spring的IoC之上,它抽象了消息源和目標,集成了消息,路由并對其進行操作,同時集成了應用程序環境的各種組件。

Spring Integration用于通信的Message對象有效負載標頭數據組成。 有效負載包含實際數據,而標頭包含其他元數據,例如id , timestamp等。下圖說明了Spring Integration通信中涉及的不同組件

因此,讓我們創建一個示例Spring Integration應用程序:

使用自定義Java接口作為入站網關

  • 創建一個新的Maven項目。
  • 將依賴項添加到pom.xml文件中: <properties><spring.version>4.0.0.RELEASE</spring.version><jms.version>1.1-rev-1</jms.version><activemq.version>3.1</activemq.version><spring.integration.version>2.2.5.RELEASE</spring.integration.version><junit.version>4.11</junit.version><spring.test.version>3.2.3.RELEASE</spring.test.version> </properties><!-- Spring Integration --> <dependency><groupId>org.springframework.integration</groupId><artifactId>spring-integration-core</artifactId><version>${spring.integration.version}</version> </dependency> <dependency><groupId>org.springframework.integration</groupId><artifactId>spring-integration-jms</artifactId><version>${spring.integration.version}</version> </dependency><!-- Include Spring test --> <dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.test.version}</version><scope>test</scope> </dependency><!-- Include JUnit --> <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope> </dependency>
  • 創建學生實體類Student.java? 如: package com.jcombat.entity;public class Student {String name;public Student(String name) {this.name = name;}public String getName() {return name;} }
  • 現在,讓我們在上下文文件中配置spring集成組件(將其命名為Test-context.xml ): <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:jms="http://www.springframework.org/schema/jms" xmlns:p="http://www.springframework.org/schema/p"xmlns:int-jme="http://www.springframework.org/schema/integration"xmlns:int="http://www.springframework.org/schema/integration"xmlns:int-jms="http://www.springframework.org/schema/integration/jms"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsdhttp://www.springframework.org/schema/integration/jms http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsdhttp://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd"><!-- Enable annotations --><context:annotation-config/><!-- Component scan to find all Spring components --><context:component-scan base-package="org.jcombat.integration"/><bean id="simpleMessageReceiver" class="com.jcombat.integration.DemoMessageReceiver" /><!-- Define a request channel to communicate --><int:channel id="request" /><int:outbound-channel-adapter channel="request" ref="simpleMessageReceiver" method="processMessage" /><int:gateway id="demoGateway" service-interface="com.jcombat.integration.DemoGatewayInterface"default-request-channel="request"></int:gateway></beans>

    消息通道是封裝實際數據并使消息生產者與使用者分離的東西。

    網關基本上是消息傳遞系統的入口/出口點。 因此,如果您有一個消息傳遞服務器,例如ActiveMQ或TIBCO,則DefaultMessageListener充當入站網關,是我們消息傳遞系統的入口點。

    當消息到達配置的通道時, Service Activator用于調用本地服務,其方式是該服務不知道正在從消息傳遞系統中調用該服務。

    適配器從外部消息傳遞系統(JMS,SFTP等)接收消息,并將其“適配”到消息傳遞系統(作為Spring Integration Message <T> )。 入站JMS適配器接收傳入的外部消息,并將其“調整”為Spring Integration Message <T>類型。 反之亦然:它需要一個Spring Integration Message <T>并將其“調整”為外部系統所需的格式。

    因此,一旦消息通過入站適配器進入,它就會通過Channels從一個組件流向另一個組件。 最終,將消息寫到某個地方可能是適當的。 我們可以使用出站適配器編寫消息。

  • 現在,讓我們創建在上下文中指定的網關接口,如下所示: package com.jcombat.integration;import com.jcombat.entity.Student;public interface DemoGatewayInterface {public void process(Student student); }
  • 創建一個接收器類,該類將在被適配器路由后最終從通道接收傳入消息。 package com.jcombat.integration;import org.springframework.integration.Message;import com.jcombat.entity.Student;public class DemoMessageReceiver {public void processMessage(Message<Student> message) {Student student = message.getPayload();System.out.println("Message Received - Student Name - " + student.getName());} }
  • 就是這個。 最后,我們需要一個客戶端來調用網關接口方法。 讓我們使用Spring Test Framework來做到這一點: package com.jcombat.integration;import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.jcombat.entity.Student; import com.jcombat.integration.DemoGatewayInterface;@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration public class Test {@Autowiredprivate DemoGatewayInterface request;@org.junit.Testpublic void testIntegration() {Student emp = new Student("Abhishek");request.process(emp);} }
  • 將您的應用程序添加到服務器并啟動服務器。
  • 導航到我們在上文第7點中創建的Test.java文件,并將其作為JUnit測試運行。 以下是我們在IDE控制臺中看到的日志:

  • 使用Spring DefaultMessageListener作為入站網關

  • 創建一個新的Maven項目。
  • 確保ActiveMQ服務器已啟動并正在運行。
  • 首先是將條目輸入pom.xml文件。 因此,這與前面的情況相同。
  • 讓我們編寫上下文文件( jmsContext.xml ),并將Spring Integration組件配置為: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:jms="http://www.springframework.org/schema/jms" xmlns:p="http://www.springframework.org/schema/p"xmlns:int-jme="http://www.springframework.org/schema/integration"xmlns:int="http://www.springframework.org/schema/integration"xmlns:int-jms="http://www.springframework.org/schema/integration/jms"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsdhttp://www.springframework.org/schema/integration/jms http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsdhttp://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd"><bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory"><property name="brokerURL" value="tcp://localhost:61616" /></bean><bean id="messageListenerContainer"class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="connectionFactory" /><property name="destinationName" value="testQueue" /><property name="maxConcurrentConsumers" value="1" /><property name="concurrentConsumers" value="1" /><property name="receiveTimeout" value="5000" /><property name="recoveryInterval" value="60000" /><property name="autoStartup" value="true" /></bean><!-- Define a channel to communicate out to a JMS Destination --><int:channel id="inbound" /><int:channel id="outbound" /><bean id="simpleMessageListener" class="com.jcombat.listener.SimpleMessageListener" /><int-jms:message-driven-channel-adapterid="jmsIn" container="messageListenerContainer" channel="inbound"acknowledge="auto" /><int:service-activator input-channel="inbound"output-channel="outbound" ref="simpleMessageListener" method="onMessage" /><int-jms:outbound-channel-adapter id="jmsOut"channel="outbound" connection-factory="connectionFactory"destination-name="sampleQueue" /></beans>
  • 讓我們在服務器啟動時加載上下文。 為此,請在web.xml文件中輸入適當的內容,如下所示: <web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/jmsContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> </web-app>
  • 創建偵聽器類,該類將最終接收消息,如下所示: package com.jcombat.listener;public class SimpleMessageListener {public String onMessage(String message) {System.out.println(message);return message;} }
  • 是時候運行我們的應用程序了。 因此,這應該作為:
  • 發送自定義消息到testQueue

  • 偵聽器被調用,它的onMessage方法被執行,將進入的消息記錄為IDE控制臺:

  • 消息通過出站通道并通過出站適配器傳遞到目標sampleQueue ,如下所示:

  • 下載源代碼

    您可以在此處下載源代碼。

  • 翻譯自: https://www.javacodegeeks.com/2015/11/introduction-to-spring-integration-framework.html

    總結

    以上是生活随笔為你收集整理的Spring Integration Framework简介的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。