zoukankan      html  css  js  c++  java
  • 转载:在spring中嵌入activemq

    转载: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有被注释掉的示例,可以参考。

  • 相关阅读:
    《objective-c基础教程》学习笔记(三)—— 从结构体到面向对象
    《objective-c基础教程》学习笔记(二)—— for循环的基本应用
    《objective-c基础教程》学习笔记 (一)—— 开发环境配置和简单类型输出
    asp.net mvc 3.0 知识点整理 ----- (4).asp.net mvc 3 和asp.net mvc 4 对比
    git简单使用(上篇)
    git简单使用(下篇)
    Spring核心概念之Ioc
    "注解"的用法
    struts2进阶篇(3)
    struts2进阶篇(2)
  • 原文地址:https://www.cnblogs.com/dead-trap-ramble/p/3439060.html
Copyright © 2011-2022 走看看