1. 程式人生 > >(六) 訊息中介軟體——使用 JmsTemplate 向 ActiveMQ 傳送和獲取 Topic 型別訊息

(六) 訊息中介軟體——使用 JmsTemplate 向 ActiveMQ 傳送和獲取 Topic 型別訊息

文章目錄

前言

本篇文章的內容會非常之少,因為 Topic 型別的資料的傳送和接收本身在程式碼上並沒有太大的差別,唯一的差別在於宣告 JmsTemplate 時注入的是 ActiveMQQueue 還是 ActiveMQTopic,所以本文僅就這部分差別進行闡述,並且強調一下 Topic 型別資料的特性。

回顧 Queue 型別訊息的傳送和請求過程

(四) 訊息中介軟體——使用 JmsTemplate 向 ActiveMQ 傳送 Queue 型別訊息
(五) 訊息中介軟體——使用 JmsTemplate 向 ActiveMQ 獲取 Queue 型別訊息

ActiveMQTopic 和 JmsTemplate

回顧 ActiveMQTopic Bean 的宣告

//測試topic
	@Bean(name="activeMQTopic")
	public ActiveMQTopic getActiveMQTopic(){
		ActiveMQTopic a=
new ActiveMQTopic("topic_test");//構造方法同時確定來佇列訊息的名字 return a; }

回顧 JmsTemplate Bean 的宣告

@Resource(name="activeMQConnectionFactory")
	private ActiveMQConnectionFactory connectionFactory;
	//通過名字指定注入的物件
	@Resource(name="activeMQTopic")
	private ActiveMQTopic activeMQTopic;
	@Bean(name="JmsTemplateTopic"
) public JmsTemplate getJmsTemplateTopic(){ JmsTemplate j=new JmsTemplate(); j.setConnectionFactory(connectionFactory);//連線工廠 j.setDefaultDestination(activeMQTopic);//目標訊息 return j; }
Topic 型別訊息的特性

你可以同時宣告多個 JmsTemplate Bean 來驗證下面的特性
1、消費者請求 Topic 型別的訊息,如果沒有則消費者等待
2、Topic 型別的訊息到達ActiveMQ,如果有等待的消費者,則立即將訊息推送給消費者,否則這個訊息會被丟棄而不會被 ActiveMQ 儲存
3、Topic 型別的訊息可以被多個消費者消費