参看上一篇 点对点:这里只写需要改变的地方。
发布者:
① 依赖:不变
② 配置文件:替换原来的点对点
<!--这个是订阅模式 文本信息-->
<bean id="topicTextDestination" class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg value="topic_text"/>
</bean>
③ 注入 跟参数变了
@Autowired
private Destination topicTextDestination;
public void sendTextMessage(final String text){
jmsTemplate.send(topicTextDestination, new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage(text);
}
});
}
④ 测试类不变
接收者:
跟提供者一样:配置文件变化 (两处改动)
<!--这个是队列目的地,多堆垛的 文本信息-->
<bean id="topicTextDestination" class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg value="topic_text"/>
</bean>
<!-- 我的监听类-->
<bean class="com.example.monitor.MyMessageListener" id="MyMessageListener"></bean>
<!--监听消息的容器-->
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<!-- 跟点对点,只有这里变化ref="topicTextDestination" -->
<property name="destination" ref="topicTextDestination" />
<property name="messageListener" ref="myMessageListener" />
</bean>
实现类,测试类不变