(六) 消息中间件——使用 JmsTemplate 向 ActiveMQ 发送和获取 Topic 类型消息

版权声明:本文为博主原创文章,如有错误劳烦指正。转载请声明出处,便于读取最新内容。——Bestcxx https://blog.csdn.net/bestcxx/article/details/83215710

前言

本篇文章的内容会非常之少,因为 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 类型的消息可以被多个消费者消费

猜你喜欢

转载自blog.csdn.net/bestcxx/article/details/83215710