`

spring 消息

 
阅读更多

一、 JMS提供了应用之间的异步通信机制 : 当一个应用通过jms向另一个应用发送消息时,两个应用之间没有直接的联系。而是,发送方应用会将消息交给一个服务,由服务确保将消息投递给接收方应用。

 

1 : JMS 中有两个主要概念 : 消息代理和目的地 , 当一个应用发送消息时,会将消息交给一个消息代理。消息代理可以确保消息被投递目的地,同时释放发送者,使其能够继续其他业务。jms 有两种目的地 队列和主题。

 

2: 点对点消息模式 : 每一个消息都有一个发送者和一个接受者。当消息代理得到消息时,它将消息放入一个队列中。当接受者请求队列中的下一条消息,消息会从队列中取出,投递给接受者。消息投递后会从队列中删除。

 

3:发布-订阅消息模式:消息会发送给一个主题。与队列类似,多个接受者都可以都可以监听一个主题。与队列不同的是,消息不再是只投递给一个接受者,所有主题的订阅者都会接受到此消息。

 

二、Spring 中搭建消息代理 : ActiveMQ 是一个伟大的开源消息代理

1、创建连接工厂 : 

<bean id = "connectionFactory" class = "org.apache.activemq.spring.ActiveMQConnectionFactory">

<property name = "brokerURL" value = "tcp : //localhost : 61616"/>

</bean>

也可以使用:activemq 自己的Spring 配置命名空间来声明连接工厂

xmln : amq = “http://activemq.apache.org/schema/code”

<amq : connectionFactory id = "connectionFactory" brokerURL = "tcp : //localhost : 61616">

 

2、声明activemq消息目的地

1: 队列

<bean id = "queue" class = "org.apache.activemq.command.ActiveMQQueue">

<constructor - arg  value = "spitter.queue">

</bean> 

 

<amq : queue = "queue" physicalName = "spitter.queue">

 

2: 主题

<bean id = "topic" class = "org.apache.activemq.command.ActiveMQTopic">

<constructor - arg  value = "spitter.topic"> value 是名称

</bean> 

 <amq : queue = "topic" physicalName = "spitter.topic">

 

三、使用spring的jms模版  : spring 给出的解决方案是jmstemplate 。 jmsTemplate 可以创建连接,获取会话,以及发送和接受消息。

 

1:  装配jms模板 : 可以创建连接、获得会话以及发送和接受消息。

为了使用jmstemplate , 我们需要在spring的配置文件中将它声明为一个bean

<bean id = "jmsTemplate" class = "org.springframework.jms.core.JmsTemplate">

      <property name= "connectionFactory"  ref = "connectionFactory"/>

      <property name= "defaultDestinationName" value = "spittle.alert.queue"/>

</bean>

 

2:发送信息

过程 : 

消息发送者 -- >  JmsTemplate -- > 队列/主题

 

jmsTemplate.send(

      new MessageCreator(){

      }

)

 

3: 接受信息 

过程:

队列/主题 -- > JmsTemplate -- > 消息接受者

jmstemplate.receive()

 

四、使用基于消息的RPC : spring 提供了两种基于消息的RPC方案

1 :使用spirng 基于消息的RPC :导出基于jms的服务 , 使用JmsInvokerServiceExporter,可以导出基于jms的服务。

 

发布

<bean id = "" class = " JmsInvokerServiceExporter"  p: service-ref = "实现类" p: serviceInterface = "接口" >

 

<jms : listener- container>  增加jms 相关信息

 

访问

<bean id = "" class = "JmsInvokerProxyFactoryBean" >

 

 

2: 使用Lingo实现异步RPC

<amq : queue id = "alterServiceQueue" physicalName = "spitter.alter.queue">

 

<bean id = "alertServiceExporter" class = "JmsServiceExporter"

p: connectionFactory-ref = "connectionFactory"

p:destincaton-ref = "alertServiceQueue"

p:service-ref = "实现类"

p:serviceInterface = "接口" 

>

 

代理异步服务

<bean id = "alterService" class = " JmsProxyFactoryBean"

p: connectionFactory-ref = "connectionFactory"

p: destination-ref = "queue"

p: serviceInterface = "接口"

>

 <property name = "metadataStrategy">

  <bean id = "metadataStrategy" class = "SimpleMetaStrategy" >

  <constructor-arg value = "true"> 

  </bean>

 </property>

</bean>

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Spring 消息注册发布的例子

    1. `Message`: 这是Spring消息传递模型的基本单元,它封装了消息的payload(有效载荷)、headers(头部信息)以及其他元数据。 2. `MessageChannel`: 定义了消息的发送和接收接口,允许组件异步发送和接收消息。 3...

    基于spring 消息队列

    Spring框架是Java开发领域广泛使用的轻量级开源框架,它提供了对消息队列的支持,使得开发者可以方便地集成消息队列到Spring应用中。在这个基于Spring的消息队列系统中,前端Web应用通过并发发送Ajax请求来获取数据...

    使用dwr+spring实现消息推送

    Spring的依赖注入可以帮助我们将其他服务(如数据库连接、消息队列等)注入到这个实现类中,从而简化代码。 在客户端,我们需要引入DWR生成的JavaScript文件,并通过DWR的API来调用服务器端的方法。例如,我们可以...

    spring消息转换器使用详解

    Spring 消息转换器使用详解 Spring 消息转换器是 Spring 框架中的一种机制,用于将 HTTP 请求和响应数据转换为 Java 对象。它提供了一种灵活的方式来处理 HTTP 请求和响应数据,使得开发者可以更方便地处理数据。 ...

    spring mq集成 web工程发送和接收消息例子

    Spring消息队列(Message Queuing)是Spring框架的一部分,它提供了对多种消息中间件的支持,如ActiveMQ、RabbitMQ等。消息队列的主要目标是解耦应用程序组件,通过异步通信提高系统的响应速度和可扩展性。 Apache ...

    Spring+Websocket实现消息的推送

    Spring框架提供了Spring WebSocket模块,该模块包含了一套完整的WebSocket支持,包括Stomp(Simple Text Oriented Message Protocol)消息代理、WebSocket消息处理以及模板类等。以下是一般步骤: 1. **配置...

    利用 Spring 和 RabbitMQ 解决消息传送难题

    Spring框架是Java开发中的一个流行选择,而RabbitMQ则是广泛应用的消息代理,两者结合能有效地解决复杂的消息传送难题。本篇文章将深入探讨如何利用Spring与RabbitMQ来构建高效、可靠的消息传递解决方案。 首先,...

    javaspring消息队列处理业务逻辑手脚架.rar

    内容是一个javaspring结构的模块,设计了处理高并发解决方案,消息队列处理业务逻辑的代码设计,注意:1 只是一个模块,不是一个可运行项目,2 需要项目结构是java spring,3 需要自己选择并搭建所使用的消息队列。

    基于JavaSpring的MQ消息处理框架.zip

    基于JavaSpring的MQ消息处理框架 项目概述 该项目是一个基于Java和Spring框架的消息处理系统,专注于实现消息的持久化、发送、接收和处理。系统支持多种消息中间件(如Kafka和ActiveMQ),并提供了灵活的消息发送...

    activeMq整合spring所需jar包

    5. **Spring消息模块(spring-messaging, spring-jms)**: - `spring-messaging`为消息驱动的应用提供抽象和基础设施,包括对JMS的支持。 - `spring-jms`提供了JMS API的简单封装,简化了消息生产者和消费者的创建和...

    pebble-spring-translate:Pebble 模板引擎的翻译扩展,使用 Spring 消息接口

    Pebble 模板引擎的翻译扩展,使用 Spring 消息接口 概述 为模板引擎提供t函数,它从 Spring MessageSource 检索消息。 {{ t('users.show.title') }} “懒惰”查找 函数支持,因此您可以在users/show.html查找users....

    Spring in Action(第二版 中文高清版).part2

    第10章 Spring消息 10.1 JMS简介 10.1.1 构建JMS 10.1.2 介绍JMS的优点 10.1.3 在Spring中安装ActiveMQ 10.2 协同使用JMS和Spring 10.2.1 处理冗长失控的JMS代码 10.2.2 使用JMS模板 10.2.3 转换消息 ...

    Spring技术内幕:深入解析Spring架构与设计原理(第2版)

    书中可能还会介绍一些高级特性,比如Spring表达式语言(SpEL)、Spring消息源、以及Spring的集成测试框架。Spring表达式语言为配置和操作对象图提供了强大的表达式语言支持。Spring的消息源为应用提供国际化支持。而...

    Spring发送接收JMS消息

    **Spring与JMS消息传递** 在Java世界中,Java Message Service (JMS) 是一个标准接口,用于在分布式环境中发送和接收消息。Spring框架提供了一种简单而强大的方式来集成JMS,使得开发者可以轻松地在应用中实现异步...

    SpringCloud之八 消息总线SpringCloudBus.pdf

    Spring Cloud Bus正是这样一种工具,它利用轻量级的消息代理来连接分布式系统中的节点,实现了配置更改的广播功能以及服务之间的通信。本文详细介绍了Spring Cloud Bus的架构原理和使用方法。 首先,Spring Cloud ...

    activemq_spring.rar_Spring和ActiveMQ_spring_消息中间件_消息发布订阅_消息订阅

    Spring框架作为Java领域广泛使用的应用框架,提供了与ActiveMQ集成的能力,使得我们可以方便地在Spring应用中实现消息的发布与订阅。现在我们来详细探讨Spring和ActiveMQ的整合以及消息的发布订阅机制。 首先,让...

    Spring in Action 中文版 第2版 第二部分

    第10章 spring消息 第11章 spring和ejb 第12章 访问企业服务 第三部分 spring客户端 第13章 处理web请求 第14章 渲染web视图 第15章 使用spring web flow 第16章 集成其他web框架 附录a 装配spring 附录b 用...

    Spring in Action 中文版 第2版 第一部分

    第10章 spring消息 第11章 spring和ejb 第12章 访问企业服务 第三部分 spring客户端 第13章 处理web请求 第14章 渲染web视图 第15章 使用spring web flow 第16章 集成其他web框架 附录a 装配spring 附录b 用...

Global site tag (gtag.js) - Google Analytics