Spring整合ActiveMQ与Properties应用示例
需积分: 0 196 浏览量
更新于2024-08-04
收藏 224KB DOCX 举报
该资源主要介绍了如何在Spring框架中整合并使用Properties文件,以及与ActiveMQ结合实现消息队列(queue)和主题(topic)功能,同时提到了MessageListener的概念。
1、Spring与Properties整合
在Spring应用中,通常会使用Properties文件来存储配置信息,便于管理与更新。在Spring中可以通过`PropertyPlaceholderConfigurer`或`@Value`注解来读取Properties文件中的属性值。例如,在`spring-mq-prepetries.xml`配置文件中,可以定义一个bean来加载`mq.properties`,如下所示:
```xml
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:mq.properties</value>
</list>
</property>
</bean>
```
然后在其他bean中,可以使用`${property_name}`的方式来引用Properties文件中的属性。
2、Spring与ActiveMQ集成
为了在Spring中使用ActiveMQ,首先需要在项目的pom.xml文件中引入Spring JMS模块的依赖,如下所示:
```xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
```
接着,配置ActiveMQ连接工厂,如`spring-queue-applicationContext.xml`或`spring-topic-applicationContext.xml`:
```xml
<bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616" />
</bean>
</property>
<!-- 其他配置 -->
</bean>
```
3、消息队列(Queue)和主题(Topic)
- Queue是一种点对点的消息传递方式,每个消息只会被一个消费者消费。
- Topic则支持发布/订阅模式,一个消息可以被多个消费者同时接收。
在配置文件中更改目的地类型,即可实现Queue到Topic的切换。
4、MessageListener
MessageListener是Spring JMS中用于监听消息的接口,它允许程序在接收到消息时自动执行某些操作。在`spring-msglistener-applicationContext.xml`中,可以定义一个实现了`MessageListener`的bean,如`MymessageListener`,并将其注册到消息侦听容器中,以便在消息到达时自动调用。
```xml
<bean id="messageListener" class="com.example.MymessageListener" />
<jee:jndi-lookup id="destination" jndi-name="java:/queue/MyQueue" />
<bean id="messageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsFactory" />
<property name="destination" ref="destination" />
<property name="messageListener" ref="messageListener" />
</bean>
```
5、测试与运行
- 生产者负责发送消息到队列或主题。
- 消费者订阅队列或主题,接收并处理消息。
- 可以通过控制台输出和浏览器观察消息的发送与接收情况。
- MessageListener会在后台自动监听消息,无需额外启动消费者。
通过上述步骤,你可以构建一个基于Spring和ActiveMQ的消息传递系统,并使用Properties文件进行配置管理。这为应用提供了灵活的扩展性和可维护性。
2019-03-06 上传
2017-11-10 上传
2014-03-23 上传
2023-08-23 上传
2023-04-25 上传
2023-04-01 上传
2023-10-13 上传
2023-05-05 上传
2023-05-25 上传
巴蜀明月
- 粉丝: 41
- 资源: 301
最新资源
- 2021年云南大学615考研真题
- Python库 | bob.paper.biosig2016-1.0.1.zip
- 基于java的-14-[计算机毕业设计]基于SSM的时间管理系统-源码.zip
- Iphlpapi_ipexport.h_Iphlpapi.lib_Iptypes.h_iprtrmib.h_iphlpapi.h
- myproject.rar
- inview-animate:JQuery.inview 的简单演示
- emitter:节点和浏览器的事件发射器,没有任何依赖性
- Python库 | bob.pad.base-2.1.0.zip
- jQuery实现的右侧选项卡焦点图片轮播动画特效源码.zip
- vue-todoList.zip
- left-right-rwlock-rust:Rust中左右并发算法的实现
- NSCT_NSCT图像融合_融合_NSCT图像融合_NSCT融合_nsct_源码.zip
- 基于ssm+jsp校园失物招领网站.zip
- hub-o-matic:Github API 的 Node 模块
- jQuery实现滑动框文字导航栏网页特效代码.zip
- Python库 | bob.learn.misc-2.0.1.zip