Spring与JMS集成

要将Spring与JMS集成,您需要创建两个应用程序。

  1. JMS接收器应用程序
  2. JMS发送器应用程序

为了使用Spring创建JMS应用程序,我们使用Apache的Active MQ服务器来创建队列。

让我们看看如何将Spring应用程序与JMS集成的简单步骤:

必需的Jar文件

  1. 您需要添加spring corespring miscspring aopspring j2eespring persistence core的jar文件。
  2. 添加位于activemq目录内的activemqall5.9.jar文件。

在ActiveMQ服务器中创建队列

下载Active MQ服务器双击位于apache-activemq-5.9.1-binapache-activemq-5.9.1binwin64或win32目录内的activemq.bat文件。

现在,活动消息队列服务器控制台将打开。

通过URL http://localhost:8161/admin/ 访问活动消息队列服务器的管理员控制台。

activemq1.png

然后,点击Queues链接,在文本框中写入myqueue,然后点击创建按钮。

activemq2.png

1) JMS接收器应用程序

以下是将Spring应用程序与JMS集成的简单步骤:

1) MyMessageListener.java

package cn.javatiku;  
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 cn.javatiku;  
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="cn.javatiku.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>  

2) JMS发送器应用程序

以下是创建JMS发送器应用程序的文件:

1) MyMessageSender.java

package cn.javatiku;  
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 cn.javatiku;  
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="cn.javatiku"></context:component-scan>  
  
</beans>  

以上是使用Spring与JMS集成的示例代码。

标签: spring, Spring教程, Spring技术, Spring语言学习, Spring学习教程, Spring下载, Spring框架, Spring框架入门, Spring框架教程, Spring框架高级教程, Spring面试题, Spring笔试题, Spring编程思想