转载:http://www.dev26.com/blog/article/137

web开发站中的邮件发送使用了activemq我这是从网上找的进行了一些修改,记录下来,为了避免发送邮件时程序对用户操作的阻塞,使用ActiveMQ来 实现JMS传送和接收。

  首先,我们在Spring中加入ActiveMQBroker的配置:

<bean id="broker"
class="org.apache.activemq .xbean.BrokerFactoryBean">
<property name="config"
value="classpath:activemq .xml" />
<property name="start"
value="true" />
</bean>

我们在此处配置了BrokerFactoryBean,此Bean实现在Spring中配置嵌入式Broker,并且支持XBean方式的配 置。Broker的配置文件由config属性指定,此处定义配置文件位于classpath中的activemq.xml。

  接下来我们需要创建Broker的配置文件activemq.xml。其实我们 不需要从头配置,展开ActiveMQ的jar包,在org.apache.activemq.xbean下,就有一个activemq.xml, 我们将其拷贝到WEB-INF/classes/目录下,并进行修改。

下面是activemq.xml的内容:

<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-3.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />
<broker useJmx="false" persistent="false"
xmlns="http://activemq.apache.org/schema/core">
<transportConnectors>
<transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>
</broker> </beans>

在spring中的配置中设置bean:

     <bean id="broker"
class="org.apache.activemq.xbean.BrokerFactoryBean">
<property name="config"
value="/WEB-INF/activemq.xml" />
<property name="start"
value="true" />
</bean>
<!-- 配置connectionFactory -->
<!-- 配置JMS连接工厂 -->
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616" />
</bean>
<!-- 发送消息的目的地(一个队列) -->
<bean id="jmsDestination" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="MY.queue"></constructor-arg>
</bean>
<!-- JMS listener wrapper -->
<bean id="listenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsConnectionFactory" />
<property name="destination" ref="jmsDestination" />
<property name="messageListener" ref="messageHandler" />
</bean>

在broker中,我们指定了不开启JMX,并且不使用持久化(persistent=”false”)。
  如果不对消息进行持久化存储,在容器或者JVM关闭、重启,或者崩溃后,所有的消息都将丢失,在我们的业务中,对于发送密码更改通知邮件,并 非是重要的功能,所以我们选择不使用持久化存储,但对于不同业务逻辑,可能会需要进行持久化存储。ActiveMQ提 供的持久化存储方案可以将消息存储到文件系统、数据库等。

  要在Broker中开启持久化存储,需要设置persistent为true,并且对其子节点persistenceAdapter,  journaledJDBC进行配置。ActiveMQjar包中的activemq.xml有被注释掉的示例,可以参考。

最新文章

  1. 三代PacBio reads纠错 - 专题
  2. MySQL使用用户变量更新分组排序
  3. 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作
  4. News common vocabulary
  5. autofac 初步学习
  6. hadoop学习之一
  7. html list &lt;==&gt; unformatted list
  8. 275. H-Index II
  9. centos6.5下的mysql5.6.30安装
  10. 对于eclipse新建maven工程需要注意的地方。
  11. 工厂方法(Factory Pattern)
  12. 输出数组里面第N大的数
  13. iOS中谓词的使用
  14. asp.net上传控件使用
  15. hdu1569find the safest road(floyd变形求最大安全值)
  16. 剑指Offer——全排列递归思路
  17. Xapth 添加注释头
  18. SparkStreaming+Kafka整合
  19. 关于js的书写
  20. 打包django项目

热门文章

  1. 详解html中的元老级元素:“table”
  2. C#集合类型大盘点(转载)
  3. 2018.09.09 poj2949Word Rings(01分数规划+spfa判环)
  4. 【Unity】2.0 第2章 Unity编辑器和基本操作
  5. c++ =&gt; new/delete
  6. EXCEL 单元格引用问题
  7. sql语句增删改查(方便你我Ta)
  8. css3美化滚动条样式
  9. 百度地图(icon,zIndex)
  10. (线段树)Just a Hook -- hdu -- 1689