spring集成jms用法
2016-05-06 16:28
363 查看
spring集成jms用法
JMS全称java message service,用于发送消息。1、优势
1.相对RPC达到了解耦的效果:与服务接口名解耦(RPC中更改接口名称,客户端需要做修改)、与服务位置解耦(RPC需要配置服务的网络位置才能使用服务)、与服务的可用性解耦(RPC中当服务不可用时,客户端也无法正常运行)。2.免去了等待,客户端将消息交给消息代理,然后就可以忙其他的事情了,而不需要阻塞等待。
2、主要概念
1.消息代理:确保信息投递到指定的目的地,同时释放发送者,使其能够继续进行其他业务。可以拿现实生活中的邮局做类比。2.目的地:这里有两种类型的目的地:队列和主题。分别对应了点对点消息模型和发布-订阅消息模型。目的地并不关心消息由谁取走,只关注消息应该从哪里获取,故而目的地类似于信件的地址为“本地居民”。
- 点对点消息模型:该模型中每个消息都有一个发送者和接受者,消息代理获得消息放入队列中,接收者请求队列中的下一跳消息时,消息会从队列中取出,投递给接受者。消息在投递后会从队列中删除,从而保证消息智能投递给一个接收者。每个消息只能投递给一个接收者,但是并不意味着只能使用一个接收者从队列中获取消息。
- 发布-订阅消息模型:消息会发送给一个主题,与队列类似的是,多个接收者都可以监听主题;不同地方是,队列中消息只投递给一个接收者,而主题中所有的订阅者都会收到此消息。
3、spring中消息代理搭建
本文中使用了ActiveMQ,在activemq发行包下载二进制发行包,bin目录下执行activemq start命令即可启动服务。1创建连接工厂:告诉spring如何连接到activemq服务
<bean id ="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://localhost:61616">
2.声明ActiveMQ目的地:不论队列还是主题,都需要使用特定的消息代理实现类在spring中配置目的地bean
<bean id="queue" class="org.apahce.activemq.command.ActiveMQQueue"> <constructor-arg value="spitter.queue"> </bean> <bean id="topic" class="org.apache.actrivemq.command.ActiveMQTopic"> <constructor-arg value="spitter.topic"> </bean>
其中
<constructor-arg>指定队列名称
相关文章推荐
- Java学习之输入+文本输出
- Spring面试,IoC和AOP的理解
- eclipse快捷键大全
- 蓝桥杯 分机号 第六届JavaB组决赛第一题
- java集合07--Stack源码解读
- java保留4位小数
- Hibernate Validation各注解的用法Demo
- struts2的配置学习
- Java中Annotation的介绍
- 解决eclipse中使用log4j2在控制台输出无法显示颜色
- Java中finalize关键字的使用
- 【SSH】MyEclipse卸载干净的方法
- 推荐几个优秀的java爬虫项目
- Google Java编程风格指南
- 了解java回调方法
- springmvc+mybatis xml中SUM()方法返回NULL的解决办法
- Ajax与Java通过POST方式交互
- Spring MVC拦截器
- Javamail实现邮件发送
- Java 之 Annotation