English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Para integrar Spring con JMS, debe crear dos aplicaciones.
Aplicación receptora JMS Aplicación del emisor JMS
Para crear una aplicación JMS con Spring, usamos Apache Servidor Active MQ Cree una cola.
Vamos a ver los pasos sencillos para integrar una aplicación de Spring. Usando JMS:
1、debe agregar spring core , spring misc , spring aop , spring j2ee y Núcleo de persistencia de Spring archivos jar.
Descargue todos los archivos jar de Spring, incluyendo aop, mvc, j2ee, remoting, oxm, etc.
2、agregar activemqall5. 9.jar El archivo se encuentra en el directorio activemq.
Descargue el servidor Active MQ Descargue el servidor Active MQ
Doble clic activemq.bat El archivo se encuentra en apache-activemq-5.9.1-bin \ apache-activemq-5.9.1 \ bin \ win64o win32en el directorio.
Ahora se abrirá la consola del servidor ActiveMQ.
a través de http://localhost:8161/admin/Visite la consola de administración del servidor ActiveMQ.
Ahora, haga clic Enlace de colaescriba en el campo de texto myqueue después de lo cual haga clic en el botón Crear
Vamos ver los pasos sencillos para integrar una aplicación de Spring con JMS:
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>
Vamos a ver el archivo para crear la aplicación del emisor JMS:
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>