English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Um Spring mit JMS zu integrieren, müssen Sie zwei Anwendungen erstellen.
JMS-Empfängeranwendung JMS Sender-Anwendung
Um eine JMS-Anwendung mit Spring zu erstellen, verwenden wir Apache's Active MQ Server Erstellen Sie eine Queue.
Lassen Sie uns die einfachen Schritte zur Integration von Spring-Anwendungen mit JMS betrachten. Verwenden Sie JMS:
1und spring core , spring misc , spring aop , spring j2ee und Spring Persistence Core jar-Dateien.
Laden Sie alle jar-Dateien von Spring herunter, einschließlich aop, mvc, j2ee, remoting, oxm und andere.
2hinzufügen activemqall5. 9.jar Die Datei befindet sich im Verzeichnis activemq.
Laden Sie Active MQ Server herunter, laden Sie Active MQ herunter
Doppelklicken activemq.bat Die Datei befindet sich im Verzeichnis apache-activemq-5.9.1-bin \ apache-activemq-5.9.1 \ bin \ win64oder win32Verzeichnis.
Jetzt wird die Konsole des ActiveMQ-Servers geöffnet.
durch http://localhost:8161/admin/Um die Verwaltungskonsole des ActiveMQ-Servers zu erreichen, besuchen Sie die Website.
Jetzt, klicken Sie auf Queue-Verknüpfungund geben Sie im Textfeld ein myqueue dann auf die Schaltfläche Erstellen klicken
Lassen Sie uns die einfachen Schritte zur Integration von Spring-Anwendungen mit JMS betrachten:
MyMessageListener.java TestListener.java applicationContext.xml
1)MyMessageListener.java
package com.w3codebox; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; public class MyMessageListener implements MessageListener{ @Override public void onMessage(Message m) { TextMessage message=(TextMessage)m; try{ System.out.println(message.getText()); }catch (Exception e) {e.printStackTrace(); } } }
2)TestListener.java
package com.w3codebox; import org.springframework.context.support.GenericXmlApplicationContext; public class TestListener { public static void main(String[] args) { GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ctx.load("classpath:applicationContext.xml"); ctx.refresh(); while(true){} } }
3)applicationContext.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:jms="http://www.springframework.org/schema/jms" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd"> <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory" p:brokerURL="tcp://localhost:61616" /> <bean id="listener" class="com.w3codebox.MyMessageListener"></bean> <jms:listener-container container-type="default" connection-factory="connectionFactory" acknowledge="auto"> <jms:listener destination="myqueue" ref="listener" method="onMessage"></jms:listener> </jms:listener-container> </beans>
Lassen Sie uns die Datei betrachten, die das Erstellen der JMS Sender-Anwendung enthält:
MyMessageSender.java TestJmsSender.java applicationContext.xml
1)MyMessageListener.java
package com.w3codebox; import javax.jms.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; import org.springframework.stereotype.Component; @Component("messageSender") public class MyMessageSender { @Autowired private JmsTemplate jmsTemplate; public void sendMessage(final String message) { jmsTemplate.send(new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { return session.createTextMessage(message); } }); } }
2)TestJmsSender.java
package com.w3codebox; import org.springframework.context.support.GenericXmlApplicationContext; public class TestJmsSender { public static void main(String[] args) { GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ctx.load("classpath:applicationContext.xml"); ctx.refresh(); MyMessageSender sender = ctx.getBean("messageSender", MyMessageSender.class); sender.sendMessage("hello jms3"); } }
3)applicationContext.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" 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/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd"> <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory" p:brokerURL="tcp://localhost:61616" /> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <constructor-arg name="connectionFactory" ref="connectionFactory"></constructor-arg> <property name="defaultDestinationName" value="myqueue"></property> </bean> <context:component-scan base-package="com.w3codebox"></context:component-scan> </beans>