English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Para integrar o Spring com o JMS, você precisa criar duas aplicações.
Aplicação receptor JMS Aplicativo Sender JMS
Para criar uma aplicação JMS usando Spring, usamos o Apache Servidor Active MQ Crie a fila.
Vamos ver os passos simples para integrar uma aplicação Spring usando JMS:
1Adicione spring core , spring misc , spring aop , spring j2ee e Núcleo de persistência do Spring arquivos jar.
Baixe todos os arquivos jar do Spring, incluindo aop, mvc, j2ee, remoting, oxm, etc.
2Adicionar activemqall5. 9.jar O arquivo está localizado no diretório activemq.
Baixe o servidor Active MQBaixe o servidor Active MQ
Clique duas vezes activemq.bat O arquivo está localizado no apache-activemq-5.9.1-bin \ apache-activemq-5.9.1 \ bin \ win64ou win32no diretório.
Agora será aberta a consola do servidor ActiveMQ.
através http://localhost:8161/admin/Acesse a consola de administração do servidor ActiveMQ.
Agora, clique Ligação de filaEscreva no campo de texto myqueue Clique em criar
Vamos ver os passos simples para integrar uma aplicação Spring com 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 ver os arquivos para criar o aplicativo Sender 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>