spring activeMQ 整合(一): 一个简单的demo,测试消息的发送与接收
环境:
windows环境下: spring 3.2.8
、Tomcat 7 、JDK 1.6 、 ActiveMQ 5.9.0
项目目录结构:
applicationContext.xml
- <!--创建连接工厂 -->
- <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
- <property name="brokerURL" value="tcp://localhost:61616"></property>
- </bean>
- <!-- 声明ActiveMQ消息目标,目标可以是一个队列,也可以是一个主题ActiveMQTopic -->
- <bean id="destinationOne" class="org.apache.activemq.command.ActiveMQQueue">
- <constructor-arg index="0" value="testQueOne"></constructor-arg>
- </bean>
- <!-- 设置 消息目的地 start -->
- <bean id="jmsTemplateOne" class="org.springframework.jms.core.JmsTemplate">
- <property name="connectionFactory" ref="connectionFactory"></property>
- <property name="defaultDestination" ref="destinationOne"></property>
- <property name="receiveTimeout" value="6000"></property>
- </bean>
- <!-- 设置 消息目的地 end -->
- <!-- 配置生产者 start -->
- <bean id="senderOne" class="com.dly.avtivemqtest.SenderOne">
- <property name="jmsTemplateOne" ref="jmsTemplateOne"></property>
- </bean>
- <!-- 配置生产者 end -->
- <!-- 配置消费者 start -->
- <bean id="receiverOne" class="com.dly.avtivemqtest.ReceiverOne">
- <!-- <property name="jmsTemplate" ref="jmsTemplate"></property> -->
- </bean>
- <!-- 配置消费者 end -->
- <!-- 消息监听器 -->
- <bean id="consumerMessageListenerOfOne" class="com.dly.avtivemqtest.ReceiverOne" />
- <!-- 消息监听容器 消息接收监听器用于异步接收消息 -->
- <bean id="jmsContainerOne" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
- <property name="connectionFactory" ref="connectionFactory" />
- <property name="destination" ref="destinationOne" />
- <property name="messageListener" ref="consumerMessageListenerOfOne" />
- </bean>
- lt;/beans>
- public class SenderOne {
- private JmsTemplate jmsTemplateOne;
- public JmsTemplate getJmsTemplateOne() {
- return jmsTemplateOne;
- }
- public void setJmsTemplateOne(JmsTemplate jmsTemplateOne) {
- this.jmsTemplateOne = jmsTemplateOne;
- }
- //测试的
- public void sendInfo(final String messageRecord,final String flag) {
- jmsTemplateOne.send(new MessageCreator() {
- public Message createMessage(Session session) throws JMSException {
- TextMessage message = session.createTextMessage();
- return message;
- }
- });
- }
- }
ReceiverOne.java
- public class ReceiverOne implements MessageListener {
- //测试方法
- public void onMessage(Message message, Session session) {
- //这里我们知道生产者发送的就是一个纯文本消息,所以这里可以直接进行强制转换
- TextMessage textMsg = (TextMessage) message;
- try {
- String endStr = textMsg.getText();
- Integer endInt = Integer.parseInt(endStr);
- System.out.println("消息:==="+endInt);
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println("异常信息是:===:" + e.getMessage());
- }
- }
- }
- public class JMSTest {
- public static void main(String[] args) {
- ApplicationContext context = new ClassPathXmlApplicationContext("resources/applicationContext.xml");
- SenderOne sender = (SenderOne) context.getBean("senderOne");
- sender.sendInfo("10","2");
- }
- }
运行JMSTest的结果:
看到控制台答应出来的 2 ,就说明 这个消息是发送成功 并且能,成功接收的,说明我们的topic消息的发送与接收是成功的。
原文地址:http://blog.****.net/dly1580854879/article/details/68488003