1.spring配置文件
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--读取配置文件-->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations"><list>
<value>classpath:activeMQ.conf.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true" />
</bean>
<!-- 启动broker -->
<bean id="broker" class="org.apache.activemq.xbean.BrokerFactoryBean">
<property name="config" value="classpath:activeMQ.xml"/>
<property name="start" value="true"/>
</bean>
activeMQ.xml的内容为
<!-- 配置broker -->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
<!-- 配置broker -->
<amq:broker xmlns="http://activemq.apache.org/schema/core" useJmx="false" persistent="false">
<amq:transportConnectors>
<amq:transportConnector uri="tcp://localhost:61616"/>
</amq:transportConnectors>
<amq:networkConnectors></amq:networkConnectors>
</amq:broker>
</beans>
<!-- JMS工厂 -->
<bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${brokerURL}"/>
</bean>
<!-- topic目标 -->
<bean id="demoTopicDestination" class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg value="hwsafe.demo.topic" />
</bean>
<!-- queue目标 -->
<bean id="demoQueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="hwsafe.demo.queue" />
</bean>
<!-- 发送者的配置-->
<!-- JMS模版 -->
<bean id="demoJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<bean class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory" ref="jmsFactory" />
</bean>
</property>
<property name="defaultDestination" ref="demoQueueDestination" />
</bean>
SendMessageDemo代码
/**
* @title SendMessageDemo.java
* @package com.hw.hwsafe.activemq.demo
* @author 马宁
* @create_time 2013-6-13 上午10:22:55
* <p>Copyright 河南汉威电子股份有限公司软件部 Corporation 2013</p>
*/
package com.hw.hwsafe.activemq.demo;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
public class SendMessageDemo {
@Autowired
private JmsTemplate demoJmsTemplate;
public void send() {
// 构建MessageCreator
MessageCreator messageCreator = new MessageCreator() {
// 实现createMessage方法
@Override
public Message createMessage(Session session) throws JMSException {
// 构建Message,有多种类型可选
return session.createTextMessage("activeMQ_demo_message");
}
};
// 使用JmsTemplate发送
demoJmsTemplate.send(messageCreator);
}
// ---------------- getter and setter --------------------
public JmsTemplate getDemoJmsTemplate() {
return demoJmsTemplate;
}
public void setDemoJmsTemplate(JmsTemplate demoJmsTemplate) {
this.demoJmsTemplate = demoJmsTemplate;
}
}
<---------------------------------------------------------------------------------------------------------------------------------------------------------------->
<!--接收者的配置中-->
<!-- 消息监听器 -->
<!-- <bean id="demoMessageListener" class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
<constructor-arg>
<bean class="com.hw.hwsafe.activemq.demo.UserMessageConsumerImpl" />
</constructor-arg>
<property name="defaultListenerMethod" value="handleMessage" />
</bean> -->
<!-- 消息监听器容器 -->
<!-- <bean id="demoListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="concurrentConsumers" value="5"/>
<property name="connectionFactory" ref="jmsFactory" />
<property name="destination" ref="demoQueueDestination" />
<property name="messageListener" ref="demoMessageListener" />
</bean> -->
UserMessageConsumerImpl的代码
package com.hw.hwsafe.activemq.demo;
import javax.jms.JMSException;
public class UserMessageConsumerImpl implements IMessageConsumer {
@Override
public void handleMessage(String msg) throws JMSException {
System.out.println("Receive:" + msg);
}
}