activeMQ和spring进行整合
2017-11-14 19:16
295 查看
第一步:导入依赖的maven包
第二步:创建spring的配置文件
<!-- 发送配置 -->
<!-- 真正的目标工厂 -->
<bean id ="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<constructor-arg name="brokerURL" value="tcp://39.106.33.97:61616"></constructor-arg>
</bean>
<!-- spring也提供一个工厂,我们把真正的工厂注入进去 -->
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory" ref="targetConnectionFactory"></property>
</bean>
<!-- spring提供了一个类似于jdbctemplate的东西 -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"></property>
</bean>
<!-- 创建消息类型目标(value为自定义的目标对象名字) -->
<bean id="queueid" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg name="name" value="springp2p"></constructor-arg>
</bean>
<!-- 接收配置 -->
<!-- 监听器,具体要做的事情只有自己知道,需要告诉Spring -->
<bean id="messageListener" class="com.qfedu.testActiceMQ.MyMessageListener"></bean>
<!-- 配置接受者监听器的容器 -->
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"></property>
<property name="destination" ref="queueid"></property>
<property name="messageListener" ref="messageListener"></property>
</bean>
第三步:创建监听器接口
public class MyMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
try {
TextMessage msg= (TextMessage) message;
String text = msg.getText();
System.out.println("这不是小咸菜,这是溜肥肠。。。");
} catch (JMSException e) {
System.out.println("整合出现错误");
e.printStackTrace();
}
}
第四步:测试发送消息
/**
* activeMQ整合spring发送消息
* @throws IOException
* */
@Test
public void testSpring() throws IOException{
ApplicationContext context = new ClassPathXmlApplicationContext("/spring/application.xml");
JmsTemplate jmsTemplate = context.getBean(JmsTemplate.class);
ActiveMQQueue queue = context.getBean(ActiveMQQueue.class);
jmsTemplate.send(queue,new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage("这是spring整合发出的消息。。。");
}
});
System.in.read();
}
第五步:测试接收消息
/**
* activeMQ整合spring接收消息
* */
@Test
public void testp2pconsumer() throws Exception{
//建立连接
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://39.106.33.97:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
//创建session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//创建接受者
Queue queue = session.createQueue("springp2p");
MessageConsumer consumer = session.createConsumer(queue);
//接收消息
consumer.setMessageListener(new MessageListener(){
@Override
public void onMessage(Message message) {
try {
TextMessage msg = (TextMessage) message;
String text= msg.getText();
System.out.println(text);
} catch (JMSException e) {
System.out.println("出现异常");
e.printStackTrace();
}
}
});
System.in.read();
}
第二步:创建spring的配置文件
<!-- 发送配置 -->
<!-- 真正的目标工厂 -->
<bean id ="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<constructor-arg name="brokerURL" value="tcp://39.106.33.97:61616"></constructor-arg>
</bean>
<!-- spring也提供一个工厂,我们把真正的工厂注入进去 -->
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory" ref="targetConnectionFactory"></property>
</bean>
<!-- spring提供了一个类似于jdbctemplate的东西 -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"></property>
</bean>
<!-- 创建消息类型目标(value为自定义的目标对象名字) -->
<bean id="queueid" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg name="name" value="springp2p"></constructor-arg>
</bean>
<!-- 接收配置 -->
<!-- 监听器,具体要做的事情只有自己知道,需要告诉Spring -->
<bean id="messageListener" class="com.qfedu.testActiceMQ.MyMessageListener"></bean>
<!-- 配置接受者监听器的容器 -->
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"></property>
<property name="destination" ref="queueid"></property>
<property name="messageListener" ref="messageListener"></property>
</bean>
第三步:创建监听器接口
public class MyMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
try {
TextMessage msg= (TextMessage) message;
String text = msg.getText();
System.out.println("这不是小咸菜,这是溜肥肠。。。");
} catch (JMSException e) {
System.out.println("整合出现错误");
e.printStackTrace();
}
}
第四步:测试发送消息
/**
* activeMQ整合spring发送消息
* @throws IOException
* */
@Test
public void testSpring() throws IOException{
ApplicationContext context = new ClassPathXmlApplicationContext("/spring/application.xml");
JmsTemplate jmsTemplate = context.getBean(JmsTemplate.class);
ActiveMQQueue queue = context.getBean(ActiveMQQueue.class);
jmsTemplate.send(queue,new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage("这是spring整合发出的消息。。。");
}
});
System.in.read();
}
第五步:测试接收消息
/**
* activeMQ整合spring接收消息
* */
@Test
public void testp2pconsumer() throws Exception{
//建立连接
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://39.106.33.97:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
//创建session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//创建接受者
Queue queue = session.createQueue("springp2p");
MessageConsumer consumer = session.createConsumer(queue);
//接收消息
consumer.setMessageListener(new MessageListener(){
@Override
public void onMessage(Message message) {
try {
TextMessage msg = (TextMessage) message;
String text= msg.getText();
System.out.println(text);
} catch (JMSException e) {
System.out.println("出现异常");
e.printStackTrace();
}
}
});
System.in.read();
}
相关文章推荐
- ActiveMQ消息队列和spring进行整合实例
- 本篇主要讲解在未使用其他框架(Spring)整合情况下,独立基于ActiveMQ,使用JMS规范进行消息通信。
- spring boot 整合activemq 进行服务端消息推送(web页面)
- 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
- spring+hibernate整合,不能启动spring容器进行单元测试
- Spring整合ActiveMQ
- Spring整合activemq发送消息(发布/订阅)
- Spring整合activeMq(一):点对点模式
- Apache Shiro 整合Spring 进行权限验证 以及在Freemarker中使用shiro标签
- 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
- spring整合activeMQ之动态注入
- 使用注解方式进行spring和hibernate整合
- springboot与ActiveMQ整合
- spring 整合junit进行测试
- Spring整合Junit4进行单元测试
- Spring与ActiveMQ整合
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)结合MockMvc进行服务端的单元测试
- Spring整合ActiveMQ
- ActiveMQ整合Spring
- 4、深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例