ActiveMQ 與Spring的整合

2021-09-25 09:29:27 字數 3793 閱讀 3092

一、簡單整合

1、新增依賴

>

>

org.apache.activemqgroupid

>

>

activemq-coreartifactid

>

>

5.7.0version

>

dependency

>

>

>

org.springframeworkgroupid

>

>

spring-jmsartifactid

>

>

5.1.5.releaseversion

>

dependency

>

>

>

org.apache.activemqgroupid

>

>

activemq-poolartifactid

>

>

5.14.5version

>

dependency

>

2、訊息生產者和訊息消費者編碼

//生產者

public

class

springmqproducer);

}//由於屬性值是在ioc中配置的,需提供setter

public

void

setjmstemplate

(jmstemplate jmstemplate)

}//消費者

public

class

springmqconsumer

public

void

setjmstemplate

(jmstemplate jmstemplate)

}

<?xml version="1.0" encoding="utf-8"?>

xmlns

=""xmlns:xsi

=""xsi:schemalocation

=" /spring-beans.xsd"

>

"springmqproducer"

class

="com.dbm.actimq.service.springmqproducer"

>

name

="jmstemplate"

ref="jmstemplate"

/>

bean

>

"springmqconsumer"

class

="com.dbm.actimq.service.springmqconsumer"

>

name

="jmstemplate"

ref="jmstemplate"

/>

bean

>

"jmsfactory"

class

="org.apache.activemq.pool.pooledconnectionfactory"

destroy-method

="stop"

>

name

="connectionfactory"

>

class

="org.apache.activemq.activemqconnectionfactory"

>

name

="brokerurl"

value

="tcp:"

/>

bean

>

property

>

name

="maxconnections"

value

="100"

/>

bean

>

"destinationqueue"

class

="org.apache.activemq.command.activemqqueue"

>

index

="0"

value

="spring-queue"

/>

bean

>

"jmstemplate"

class

="org.springframework.jms.core.jmstemplate"

>

name

="connectionfactory"

ref="jmsfactory"

/>

name

="defaultdestination"

ref="destinationqueue"

/>

name

="messageconverter"

>

class

="org.springframework.jms.support.converter.******messageconverter"

/>

property

>

bean

>

beans

>

4、測試

public

class

maintest

// //消費訊息

// public static void main(string args)

}

以上示例以隊列為例,topic類似,只需要將目的地型別改為topic即可,其他無需任何改動,但topic需要先啟動訂閱者。

二、配置***

1、編寫自定義***:必須實現 messagelistener 介面

public

class

mymessagelistener

implements

messagelistener

catch

(jm***ception e)

}}

class

="org.springframework.jms.listener.defaultmessagelistenercontainer"

>

name

="connectionfactory"

ref="jmsfactory"

/>

name

="destination"

ref="destinationqueue"

/>

name

="messagelistener"

ref="mymessagelistener"

/>

bean

>

"mymessagelistener"

class

="com.dbm.actimq.service.mymessagelistener"

/>

3、測試

//生產訊息

public

static

void

main

(string args)

tip:配置了訊息***後,只要***監聽的目的地中有訊息,就會立即消費訊息,這樣看起來似乎無需消費者端,訊息是被***消費掉了,其實生產者端和消費者端是一種相對的概念,僅僅是對於訊息而言,***本身就應該配置在消費者端。

activemq與spring整合配置

對於spring與activemq整合的配置,資料已經很多,不再贅述。我只闡述本人在學習中遇到的問題。我在使用 spring與 activemq整合是遇到乙個問題.問題 在使用發布 訂閱模式時,訊息持久化到資料庫。當客戶端掛掉後,然後重啟客戶端,然而重啟後的客戶端並未消費未消費的訊息。解決 在配置 ...

spring 專案整合ActiveMQ

org.apache.activemq activemq core 5.7.0 org.apache.activemq activemq pool 5.15.9 org.springframework spring jms 4.2.5.release 注意 這邊引入的依賴如果版本過高,在農汙專案中會...

使用 Spring 配置activemq

開發需要,所以了解了一些,整理一下作為筆記。1.首先匯入相應的xsi schemalocation,2.配置jms連線工廠 通過properties檔案來進行的配置 3.配置jms模板 queue spring 提供的jms工具類,用於傳送接收訊息 topic模板 connectionfactory...