`
newleague
  • 浏览: 1472767 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

JMS命名空间支持

    博客分类:
  • JMS
 
阅读更多

Spring 2.5引入了XML命名空间以简化JMS的配置。使用JMS命名空间元素时,需要引用如下的JMS Schema:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jms="http://www.springframework.org/schema/jms"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-2.5.xsd">

<!-- <bean/> definitions here -->

</beans>

这个命名空间由两级元素组成:<listener-container/><jca-listener-container/>,它们都可以包含一个或这个多个 <listener/> 子元素。下面是一个基本配置的示例,包含两个******。

<jms:listener-container>

    <jms:listener destination="queue.orders" ref="orderService" method="placeOrder"/>

    <jms:listener destination="queue.confirmations" ref="confirmationLogger" method="log"/>

</jms:listener-container>

上面的例子等同于在 第 19.4.4 节 “MessageListenerAdapter 的示例中,定义两个不同的******容器和两个不同的 MessageListenerAdapter 。除了上面的属性外,listener 元素还具有几个可选的属性。下面的表格列出了所有的属性:

表 19.1. JMS listener 元素的属性

属性 描述
id

******容器的Bean名称。如果没有指定,将自动生成一个Bean名称。

destination (必须)

******目的地的名称,由 DestinationResolver 的策略决定。

ref (必须)

处理对象的Bean名称

method

处理器中被调用的方法名。如果 ref 指向 MessageListener 或者 Spring SessionAwareMessageListener,则这个属性可以被忽略。

response-destination

默认的响应目的地是发送响应消息抵达的目的地。 这用于请求消息没有包含"JMSReplyTo"域的情况。响应目的地类型被******容器的"destination-type"属性决定。记住:这仅仅适用于有返回值的******方法,因为每个结果对象都会被转化成响应消息。

subscription

持久订阅的名称,如果需要的话。

selector

******的一个可选的消息选择器。


<listener-container/>元素也有几个可选的属性。 这些属性允许像 基本的 JMS设置和资源引用一样来定义不同的策略 (例如 taskExecutordestinationResolver)。 使用这些属性,可以定义很广泛的定制******容器,同时仍享有命名空间的便利。

<jms:listener-container connection-factory="myConnectionFactory"
                        task-executor="myTaskExecutor"
                        destination-resolver="myDestinationResolver"
                        transaction-manager="myTransactionManager"
                        concurrency="10">

    <jms:listener destination="queue.orders" ref="orderService" method="placeOrder"/>

    <jms:listener destination="queue.confirmations" ref="confirmationLogger" method="log"/>

</jms:listener-container>

下面的表格描述了所有可用的属性。参考 AbstractMessageListenerContainer 类和具体子类的Javadoc来了解每个属性的细节。这部分的Javadoc也提高那个了事务选择和消息传输场景的讨论。

表 19.2. JMS <listener-container/> 元素的属性

属性 描述
container-type

******容器的类型。可用的选项是: defaultsimpledefault102 或者 simple102 (默认值是 'default')。

connection-factory

JMS ConnectionFactory Bean的引用(默认的Bean名称是 'connectionFactory')。

task-executor

JMS******调用者Spring TaskExecutor 的引用。

destination-resolver

DestinationResolver 策略的引用,用以解析JMS Destinations

message-converter

MessageConverter 策略的引用,用以转换JMS Messages 成******方法的参数。默认值是 SimpleMessageConverter

destination-type

******的JMS目的地类型。可用的选项包含: queuetopic 或者 durableTopic (默认值是 'queue')。

client-id

这个******容器在JMS客户端的id。

acknowledge

本地JMS应答模式。可用的选项包含: autoclientdups-ok 或者 transacted (默认值是 'auto')。 'transacted' 的值可激活本地事务性 Session。 也可以通过指定下面介绍的 transaction-manager 属性。

transaction-manager

Spring PlatformTransactionManager 的引用。

concurrency

每个******可激活的Session最大并发数。

prefetch

加载进每个Session的最大消息数。记住增加这个值会造成并发空闲。


使用“jms” Schema支持来配置基于JCA的******容器很相似。

<jms:jca-listener-container resource-adapter="myResourceAdapter"
                            destination-resolver="myDestinationResolver"
                            transaction-manager="myTransactionManager"
                            concurrency="10">

    <jms:listener destination="queue.orders" ref="myMessageListener"/>

</jms:jca-listener-container>

JCA可用的配置选项描述如下表:

表 19.3. JMS <jca-listener-container/> 元素的属性

属性 描述
resource-adapter

JCA ResourceAdapter Bean 的一个引用(默认的Bean名称是'resourceAdapter')。

activation-spec-factory

JmsActivationSpecFactory 的一个引用。 默认自动检测JMS提供者和它的 ActivationSpec 类 (参考 DefaultJmsActivationSpecFactory

destination-resolver

DestinationResolver 策略的引用,用以解析JMS Destinations

message-converter

MessageConverter 策略的引用,用以转换JMS Messages 成******方法参数。 默认值是 SimpleMessageConverter

destination-type

******的JMS目的地类型。可用的选项包含 queuetopic 或者 durableTopic 默认是 'queue')。

client-id

这个******容器在JMS客户端的id。

acknowledge

本地JMS应答模式。可用的选项包含:autoclientdups-ok 或者 transacted (默认值是 'auto')。 'transacted' 的值可激活本地事务性 Session。 也可以通过指定下面介绍的 transaction-manager 属性

transaction-manager

Spring JtaTransactionManager 或者 javax.transaction.TransactionManager 的引用,用以为传进的消息应用XA事务。 如果没有指定,将使用本地应答模型(参见“acknowledge”属性)。

concurrency

每个******可激活的Session最大并发数。

prefetch

加载进每个Session的最大消息数。记住增加这个值会造成并发空闲。

分享到:
评论

相关推荐

    Spring中文帮助文档

    2.3.3. 对bean命名pointcut( bean name pointcut element)的支持 2.3.4. 对AspectJ装载时织入(AspectJ load-time weaving)的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. 对Websphere ...

    Spring API

    2.3.3. 对bean命名pointcut( bean name pointcut element)的支持 2.3.4. 对AspectJ装载时织入(AspectJ load-time weaving)的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. 对Websphere ...

    Java优化编程(第2版)

    13.2.1 创建支持泛型的类 13.2.2 泛型的自动解包装与自动包装的功能 13.2.4 限制泛型中类型参数的范围 小结 第14章 ajax技术与web应用性能优化 14.1 了解ajax 14.2 通过ajax技术改善web应用性能 14.2.1 ajax技术实现...

    Spring攻略(第二版 中文高清版).part2

    3.1 启用Spring的AspectJ注解支持 113 3.1.1 问题 113 3.1.2 解决方案 113 3.1.3 工作原理 113 3.2 用AspectJ注解声明aspect 115 3.2.1 问题 115 3.2.2 解决方案 115 3.2.3 工作原理 116 3.3 访问...

    Spring攻略(第二版 中文高清版).part1

    3.1 启用Spring的AspectJ注解支持 113 3.1.1 问题 113 3.1.2 解决方案 113 3.1.3 工作原理 113 3.2 用AspectJ注解声明aspect 115 3.2.1 问题 115 3.2.2 解决方案 115 3.2.3 工作原理 116 3.3 访问...

    J2EE应用开发详解

    259 15.3.2 Setter注入 261 15.3.3 Method注入 263 15.4 Spring AOP技术 266 15.4.1 装备(advices) 267 15.4.2 Spring AOP的传统用法 275 15.4.3 基于@AspectJ注释的AOP 277 15.4.4 基于aop命名空间的AOP 279 ...

    Java数据编程指南

    Java和ODMG 3.0规范 基础 ODMG的核心概念 对象定义语言 小结 第11章 目录服务与JNDI 命名与目录服务 使用JNDI JAVA与LDAP 从理论到实践 标准的LDAP操作 LDAP服务器改进 在LDAP...

    java 面试题 总结

    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...

    超级有影响力霸气的Java面试题大全文档

    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................

Global site tag (gtag.js) - Google Analytics