消息发送public static void main(String[] args) throws JMSException{// ConnectionFactory :连接工厂,JMS 用它创建连接ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");// JMS 客户端到JMS Provider 的连接Connection connection = connectionFactory.createConnection();connection.start();// Session: 一个发送或接收消息的线程Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);// Destination :消息的目的地;消息发送给谁.// 获取session注意参数值Queue.Name是Query的名字Destination destination = session.createQueue("[color=red]Queue.Name[/color]");// MessageProducer:消息生产者MessageProducer producer = session.createProducer(destination);// 设置不持久化producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);// 发送一条消息sendMsg(session, producer);session.commit();connection.close();}/*** 在指定的会话上,通过指定的消息生产者发出一条消息* * @param session 消息会话* @param producer 消息生产者*/public static void sendMsg(Session session, MessageProducer producer) throws JMSException{// 创建一条文本消息TextMessage message = session.createTextMessage("Hello ActiveMQ!");// 通过消息生产者发出消息producer.send(message);System.out.println("");}
消息接收public static void main(String[] args) throws JMSException{// ConnectionFactory :连接工厂,JMS 用它创建连接ConnectionFactory connectionFactory =
new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");// JMS 客户端到JMS Provider 的连接Connection connection = connectionFactory.createConnection();connection.start();// Session: 一个发送或接收消息的线程Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);// Destination :消息的目的地;消息发送给谁.// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置Destination destination = session.createQueue("Queue.Name");// 消费者,消息接收者MessageConsumer consumer = session.createConsumer(destination);while(true){TextMessage message = (TextMessage) consumer.receive(1000);if(null != message)System.out.println("收到消息:" + message.getText());elsebreak;}session.close();connection.close();}
  spring application.xml 文件配置<!-- 配置JMS消息发送 --><bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory"destroy-method="stop"><property name="connectionFactory"><bean class="org.apache.activemq.ActiveMQConnectionFactory"><property name="brokerURL"><value>tcp://localhost:61616</value></property></bean></property></bean><!-- Spring JMS Template --><bean id="myJmsTemplate" class="org.springframework.jms.core.JmsTemplate"><property name="connectionFactory"><ref local="jmsFactory" /></property></bean><bean id="destination" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg index="0"><value>Queue.Name</value></constructor-arg></bean><bean id="sender" class="demo.JmsQueueSender"><property name="jmsTemplate" ref="myJmsTemplate"></property></bean><bean id="receive" class="demo.JmsQueueReceiver"></bean><bean id="listenerContainer"class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="jmsFactory"></property><property name="messageListener" ref="receive"></property><property name="destination" ref="destination" /></bean><!-- 配置JMS消息发送完成 -->
sender@Component
public class JmsQueueSender
{private JmsTemplate jmsTemplate;public void setConnectionFactory(ConnectionFactory cf){this.jmsTemplate = new JmsTemplate(cf);}public void simpleSend(){jmsTemplate.convertAndSend("Queue.Name", "test!!!");}public JmsTemplate getJmsTemplate(){return jmsTemplate;}public void setJmsTemplate(JmsTemplate jmsTemplate){this.jmsTemplate = jmsTemplate;}
}
receiver@Component
public class JmsQueueReceiver implements MessageListener
{@Overridepublic void onMessage(Message message){if(message instanceof TextMessage){final TextMessage textMessage = (TextMessage) message;try{System.out.println(textMessage.getText());}catch(final JMSException e){e.printStackTrace();}}}
}
配置ActiveMQ以数据库的方式存储消息 ActiveMQ安装目录\conf\activemq.xml 找到 <broker>标签中的内容<persistenceAdapter><kahaDB directory="${activemq.base}/data/kahadb"/></persistenceAdapter>注释掉以上内容,添加自己的数据库配置<persistenceAdapter><jdbcPersistenceAdapter dataSource="#mysql-ds"/>
</persistenceAdapter>配置以Mysql的方式保存消息 <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://localhost/test?relaxAutoCommit=true"/><property name="username" value="root"/><property name="password" value="root"/> <property name="poolPreparedStatements" value="true"/>
</bean> 将Mysql的包加到ActiveMQ的启动Lib下 在Mysql数据中新建数据库 test,ActiveMQ在启动的时候会自动建表。 重新启动服务。 这样消息的发送者的消息将被保存到Mysql数据库,同时消息消耗者每读取一条消息。数据库中的消息也会相应的删除。 

Spring+ActiveMQ+Mysql 配置JMS相关推荐

  1. spring mvc mysql配置_spring mvc配置数据库连接

    ACM 配置中心实战:Spring + MyBatis + Druid + ACM 很多基于 Spring MVC 框架的 Web 开发中,Spring + MyBatis + Druid 是一个黄金 ...

  2. activemq mysql 配置详解_activeMQ数据库配置

    ActiveMQ很好的支持了消息的持久性(Persistence).消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化, 即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后 ...

  3. spring spring c3p0 mysql配置_Spring通过c3p0配置bean连接数据库

    Spring配置bean连接数据库两种方法: (1)直接在.xml文件内部配置: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q ...

  4. activemq mysql 配置详解_ActiveMQ配置详解

    一.消息目的地策略 在节点destinationPolicy配置策略,可以对单个或者所有的主题和队列进行设置,使用流量监控,当消息达到memoryLimit的时候,ActiveMQ会减慢消息的产生甚至 ...

  5. springboot原生mysql写法_【Rainbond最佳实践】Spring Boot框架配置MySQL

    Rainbond开源软件介绍: Rainbond是国内首个开源的生产级无服务器PaaS. 深度整合基于Kubernetes的容器管理.多类型CI/CD应用构建与交付.多数据中心的资源管理等技术,提供云 ...

  6. SpringMVC +Spring + MyBatis + Mysql + Redis(作为二级缓存) 配置

    转载:http://blog.csdn.net/xiadi934/article/details/50786293 项目环境: 在SpringMVC +Spring + MyBatis + MySQL ...

  7. 【Spring】SpringBoot 配置MySql和Doris多数据源

    嗨, 大家好, 最近公司想要使用DorisDB做数据存储, 经过几天对Doris的研究,发现Dorsi连接方式其实用的就是JDBC连接方式.今天把这两天的学习成果记录一下. 也希望对看到此文章的人有所 ...

  8. java+spring+mysql配置_JAVA后台搭建(springboot+mybatis+mysql)项目搭建

    前言 上篇文章写了基本环境配置的搭建,接下来我们需要搭建项目了,项目搭建使用的IDEA,springboot项目的搭建非常快只需要几分钟,然后介绍MyBatis以及MySql的基本配置以及项目的Hel ...

  9. 3.了解Spring Boot2自动配置原理

    了解Spring Boot2自动配置原理 1.SpringBoot特点 1.1.依赖管理 1.父项目做依赖管理 依赖管理 <parent><groupId>org.spring ...

最新文章

  1. JavaScript权威设计--CSS(简要学习笔记十六)
  2. 【Qt】2D绘图之绘制图片
  3. 使用组策略推送exchange自签名证书
  4. C# 实例练习——字符串处理(第三天)
  5. 沙特40米高超大遮阳伞,撑开有半个足球场大小,可覆盖整个广场
  6. 【jvm】jvisualvm 离线下载安装插件
  7. surf中,颜色描述第四维
  8. HTTP响应码与HTTP头标
  9. 类和对象编程(七):this指针
  10. 历史上华人计算机科学家,郑州大学韩家炜、张宏江两位校友在世界顶尖计算机科学家排名中再度名列华人科学家和中国大陆科学家之首...
  11. 【javascript】手写一个webpack plugin
  12. Windows程序设计的第一个实例
  13. java在word中插入图片的一些问题
  14. JIRA带来的管理思路
  15. pytorch Load部分weights
  16. 计算机设备名称在哪里找,如何查看电脑驱动
  17. python3 爬虫学习:自动给你心上人的微博点赞(一)
  18. canvas文字旋转功能
  19. TIA博途_OB组织块的功能和使用方法介绍
  20. P1873 砍树(二分答案)

热门文章

  1. HTML向Flex传参
  2. Vimdiff---VIM的比较和合并工具
  3. ios 学习札记 细节(三)
  4. 用python做mud
  5. 【JFreeChart】JFreeChart—输出组合图表
  6. 如何安装zabbix_get
  7. 优化混合云性能:数据管理技巧大公开
  8. eclipse中的感叹号和x号解决方法
  9. iOS中定时器NSTimer的使用
  10. php生成对象吗,php生成器对象