我是靠谱客的博主 隐形荔枝,这篇文章主要介绍spring+springMvc+activeMq+maven+mybaits(基于全注解)spring activeMq 配置java activeMq监听器java activeMq消息发送java 消息公共类activeMq 消息持久化,现在分享给大家,希望可以做个参考。

这篇做一个综合的activeMq

只列出关键代码

框架用的(maven)springMvc+spring+mybaits(这套框架可以直接拿来整合使用)

spring activeMq 配置

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!-- ActiveMQ 连接工厂 --> <!-- 真正可以产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供--> <!-- 如果连接网络:tcp://ip:61616;未连接网络:tcp://localhost:61616 以及用户名,密码--> <amq:connectionFactory id="amqConnectionFactory" brokerURL="tcp://127.0.0.1:61616" userName="admin" password="admin" /> <!-- spring caching连接工厂 --> <!-- spring用于管理真正的Connectionfactory的connectionFactory --> <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <!-- 目标ConnectionFacory对应真实的可以产生JMS Connection的ConnectionFactory --> <property name="targetConnectionFactory" ref="amqConnectionFactory"></property> <!-- Session缓存数量 --> <property name="sessionCacheSize" value="100"></property> </bean> <!-- Spring JmsTemplate的消息生产者 start --> <!-- 定义JmsTemplate的Queue类型 --> <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate"> <!-- 这个connectionFactory对应的是我们定义的spring提供的那个ConnectionFactory对象 --> <constructor-arg ref="connectionFactory"></constructor-arg> <!-- 非pub/sub模型(发布/订阅),即队列模式 --> <property name="pubSubDomain" value="false"></property> </bean> <!-- 定义JmsTemplate的Topic类型 --> <bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate"> <constructor-arg ref="connectionFactory"></constructor-arg> <!-- pub/sub模型(发布/订阅) --> <property name="pubSubDomain" value="true"></property> </bean> <!-- Spring JmsTemplate 的消息生产者end--> <!-- 消息消费者 start --> <!-- 定义Queue监听器 --> <jms:listener-container destination-type="queue" container-type="default" connection-factory="connectionFactory" acknowledge="auto"> <jms:listener destination="test.queue" ref="queueReceiver1"></jms:listener> <jms:listener destination="test.queue" ref="queueReceiver1"></jms:listener> </jms:listener-container> <!-- 定义Topic监听器 --> <jms:listener-container destination-type="topic" container-type="default" connection-factory="connectionFactory" acknowledge="auto"> <jms:listener destination="test.topic" ref="topicReceiver1"/> <jms:listener destination="test.topic" ref="topicReceiver2"/> </jms:listener-container> <!-- 消息消费者end -->

java activeMq监听器

我是把消息发送的数据直接插入数据库,进行持久化!没涉及到任何业务!
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.css.cn.consumer; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.css.cn.dao.ActiveInsertDao; /** * 点对点消息队列监听器 * @ClassName: QueueReceiver1 * @author zyj * @date 2016年11月30日 下午3:17:46 * * @version V1.0 */ @Component public class QueueReceiver1 implements MessageListener{ @Autowired private ActiveInsertDao activeInsert; @Override public void onMessage(Message message) { // TODO Auto-generated method stub try { String text = ((TextMessage) message).getText(); System.out.println("点对点QueueReceiver1监听器"+text); activeInsert.insertValue(text); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

java activeMq消息发送

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.css.cn.sender; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; import org.springframework.stereotype.Component; /** * 消息生产者 * @ClassName: QueueSender1 * @author zyj * @date 2016年11月30日 上午11:41:41 * * @version V1.0 */ @Component public class QueueSender1 { // 通过Qualifier来注入对应的Bean @Autowired @Qualifier("jmsQueueTemplate") private JmsTemplate jmsTemplate; /** * 发送消息到指定的队列(目标) * @Title: send * @param queueName 队列名称 * @param message 消息内容 * @return void * @author zyj * @date 2016年11月30日 上午11:57:43 * @throws */ public void send(String queueName,String message){ jmsTemplate.send(queueName, new MessageComm(message)); } }


java 消息公共类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.css.cn.sender; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; import javax.jms.TextMessage; import org.springframework.jms.core.MessageCreator; public class MessageComm implements MessageCreator { private String message; public MessageComm(String message){ this.message = message; } @Override public Message createMessage(Session session) throws JMSException { // TODO Auto-generated method stub TextMessage messages = session.createTextMessage(message); return messages; } }

参考文章: http://blog.csdn.net/jiuqiyuliang/article/details/48758203

整合代码下载


activeMq 消息持久化

需要mysql驱动jar包   activeio-core-3.1.4.jar   activemq-all-5.14.1.jar commons-pool-1.5.6.jar  commons-dbcp-1.4.jar

conf/activemq.xml修改以下内容
 <persistenceAdapter>
           <kahaDB directory="${activemq.data}/kahadb"/>
        </persistenceAdapter>
改为
 <persistenceAdapter>
<jdbcPersistenceAdapter  dataSource="#mysql-ds"  useDatabaseLock="false"/>
        </persistenceAdapter>

然后添加

<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>   
<property name="url" value="jdbc:mysql://192.168.137.6:3306/game?relaxAutoCommit=true"/>  
<property name="username" value="deminplat"/>  
<property name="password" value="deminplat"/>   
<property name="poolPreparedStatements" value="true"/>   
</bean>


最后

以上就是隐形荔枝最近收集整理的关于spring+springMvc+activeMq+maven+mybaits(基于全注解)spring activeMq 配置java activeMq监听器java activeMq消息发送java 消息公共类activeMq 消息持久化的全部内容,更多相关spring+springMvc+activeMq+maven+mybaits(基于全注解)spring内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部