activeMQ与spring结合 使用及配置

来源:互联网 发布:kali linux arp欺骗 编辑:程序博客网 时间:2024/05/29 21:16

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);
}


}


0 0
原创粉丝点击