activeMQ和spring集成的配置文件講解 利用activce連接池

生產者:
ActiveMQConnectionFactory類
方法:
setUserName(String userName) 
setBrokerURL(String brokerURL)
setPassword(String password)


<!-- 第三方MQ工廠: ConnectionFactory -->
       <bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<!-- ActiveMQ Address -->
        <property name="brokerURL" value="${activemq.brokerURL}" />
        <property name="userName" value="${activemq.userName}"></property>
        <property name="password" value="${activemq.password}"></property> 
</bean>
----------------------------------------------------------------------------------
PooledConnectionFactory類
方法:
setConnectionFactory(final Object toUse)
setMaxConnections(int maxConnections)


<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
<property name="connectionFactory" ref="targetConnectionFactory" />
<property name="maxConnections" value="${activemq.pool.maxConnections}" />
</bean>


------------------------------------------------------------------------------------------------
SingleConnectionFactory類
方法:
setTargetConnectionFactory(ConnectionFactory targetConnectionFactory)
<!-- Spring用於管理真正的ConnectionFactory的ConnectionFactory -->
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<!-- 目標ConnectionFactory對應真實的可以產生JMS Connection的ConnectionFactory -->
<property name="targetConnectionFactory" ref="pooledConnectionFactory" />
</bean>
--------------------------------------------------------------------------------------------------


JmsTemplate類
方法:
setConnectionFactory(ConnectionFactory connectionFactory)
setDefaultDestinationName(String destinationName)
<!-- Spring提供的JMS工具類,它可以進行消息發送、接收等 -->
<!-- 隊列模板 -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">  
    <!-- 這個connectionFactory對應的是我們定義的Spring提供的那個ConnectionFactory對象 -->  
    <property name="connectionFactory" ref="connectionFactory"/>  
    <property name="defaultDestinationName" value="${activemq.queueName}"></property>
</bean> 
----------------------------------------------------------------------------------------------------


使用方法:
jmsTemplate.send(new MessageCreator() {

public Message createMessage(Session session) throws JMSException {
// TODO 自動生成的方法存根
return session.createTextMessage(msg+System.currentTimeMillis());
}
});


=============================================================================================
消費者:


上面ActiveMQConnectionFactory,PooledConnectionFactory,SingleConnectionFactory,JmsTemplate


比生產者多的類:
ActiveMQQueue
方法:
public ActiveMQQueue(String name) {
        super(name);
    }
<!--這個是目的地:mailQueue -->
<bean id="mailQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg>
<value>${activemq.queueName}</value>
</constructor-arg>
</bean>
-----------------------------------------------------------------------------------
<!-- 配置自定義監聽:MessageListener -->
<bean id="textMessageListener" class="cn.itcast.mq.MessageListener"></bean>


 class MessageListener implements SessionAwareMessageListener<Message>類
方法:
public void onMessage(Message msg, Session session)


------------------------------------------------------------------------------------
DefaultMessageListenerContainer類
方法:
public setConnectionFactory(ConnectionFactory connectionFactory)
public void setDestination(Destination destination)
public void setMessageListener(Object messageListener)
<!-- 將連接工廠、目標對了、自定義監聽注入jms模板 -->
<bean id="sessionAwareListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="mailQueue" />
<property name="messageListener" ref="textMessageListener" />
</bean>




spring中xml注入機制
1.普通屬性,值爲引用上面對象時
<property name="destination" ref="mailQueue" />
2.普通屬性,值爲基本數據類型
<property name="defaultDestinationName" value="${activemq.queueName}">
3.構造方法
<constructor-arg>
  <value>${activemq.queueName}</value>
</constructor-arg>
4.list集合
<property name="allawedPass">
   <list>
<value>/user/login.htm</value>
<value>/user/regiest.htm</value>
<value>/user/phonelogin.htm</value>
        <value>/user/activity.htm</value>
   </list>
</property>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章