SpringFramework4系列之SpringJMS:(五)Jms namespace的使用

Spring jms 的命名空间

xmlns:jms=" 
xsi:schemaLocation="
http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms.xsd"

Spring jms 的命名空间元素

SpringJMS 提供了 三种 命名空间元素

<jms:annotation-drive>
<jms:listener-container>
<jms:jca-listener-container>

<jms:annotation-drive>

<jms:listener-container>

用例

<jms:listener-container>
    <jms:listener destination="queue.orders" ref="orderService" method="placeOrder"/>
    <jms:listener destination="queue.confirmations" ref="confirmationLogger" method="log"/>
</jms:listener-container>

可见<jms:listener-container> 是用来定义Listener Container和容器内的监听器的。使配置简洁明了。

对于<jms:listener-container> 它只有一个子节点<jms:listener>.而它本身可以定义多个属性

<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>

table2.1 <jms:listener-container>的属性

Attribute Description
container-type The type of this listener   container. Available options are: default, simple,   default102, or simple102 (the default value is 'default').
container-class A custom listener container   implementation class as fully qualified class name. Default is Spring’s   standard DefaultMessageListenerContainer or SimpleMessageListenerContainer, according to the "container-type" attribute.
factory-id Exposes the settings defined by   this element as a JmsListenerContainerFactory with the specified id so that they can be reused with other   endpoints.
connection-factory A reference to the JMS ConnectionFactory bean (the default   bean name is 'connectionFactory').
task-executor A reference to the Spring TaskExecutor for the JMS listener   invokers.
destination-resolver A reference to the DestinationResolver strategy for   resolving JMS Destinations.
message-converter A reference to the MessageConverter strategy for   converting JMS Messages to listener method arguments. Default is a SimpleMessageConverter.
error-handler A reference to an ErrorHandler strategy for handling   any uncaught Exceptions that may occur during the execution of the MessageListener.
destination-type The JMS destination type for   this listener: queue, topic, durableTopic, sharedTopic or sharedDurableTopic. This enables potentially the pubSubDomain, subscriptionDurable and subscriptionShared properties of the container. The default is queue (i.e. disabling those 3   properties).
client-id The JMS client id for this   listener container. Needs to be specified when using durable subscriptions.
cache The cache level for JMS   resources: none, connection, session, consumer or auto.   By default ( auto), the   cache level will effectively be "consumer", unless an external   transaction manager has been specified - in which case the effective default   will be none (assuming   Java EE-style transaction management where the given ConnectionFactory is an   XA-aware pool).
acknowledge The native JMS acknowledge mode:   auto, client, dups-ok or transacted. A value of transacted activates a locally transacted Session. As an alternative, specify the transaction-manager attribute described below. Default is auto.
transaction-manager A reference to an external PlatformTransactionManager   (typically an XA-based transaction coordinator, e.g. Spring’s JtaTransactionManager). If not   specified, native acknowledging will be used (see "acknowledge"   attribute).
concurrency The number of concurrent   sessions/consumers to start for each listener. Can either be a simple number   indicating the maximum number (e.g. "5") or a range indicating the   lower as well as the upper limit (e.g. "3-5"). Note that a specified   minimum is just a hint and might be ignored at runtime. Default is 1; keep   concurrency limited to 1 in case of a topic listener or if queue ordering is   important; consider raising it for general queues.
prefetch The maximum number of messages   to load into a single session. Note that raising this number might lead to   starvation of concurrent consumers!
receive-timeout The timeout to use for receive   calls (in milliseconds). The default is 1000 ms (1 sec); -1 indicates no timeout at all.
back-off Specify the BackOff instance to use to compute the interval between recovery   attempts. If the BackOffExecution implementation returns BackOffExecution#STOP, the listener container will not further attempt to recover.   The recovery-interval   value is ignored when this property is set. The default is a FixedBackOff with an interval of   5000 ms, that is 5 seconds.
recovery-interval Specify the interval between   recovery attempts, in milliseconds. Convenience way to create a FixedBackOff with the specified   interval. For more recovery options, consider specifying a BackOff instance   instead. The default is 5000 ms, that is 5 seconds.
phase The lifecycle phase within which   this container should start and stop. The lower the value the earlier this   container will start and the later it will stop. The default is Integer.MAX_VALUE meaning the   container will start as late as possible and stop as soon as possible.


table 2.2 <jms:listener>的属性

Attribute Description
id A bean name for the hosting   listener container. If not specified, a bean name will be automatically   generated.
destination   (required) The destination name for this   listener, resolved through the DestinationResolver strategy.
ref (required) The bean name of the handler   object.
method The name of the handler method   to invoke. If the ref points   to a MessageListener or   Spring SessionAwareMessageListener, this attribute may be omitted.
response-destination The name of the default response   destination to send response messages to. This will be applied in case of a   request message that does not carry a "JMSReplyTo" field. The type   of this destination will be determined by the listener-container’s "destination-type"   attribute. Note: This only applies to a listener method with a return value,   for which each result object will be converted into a response message.
subscription The name of the durable   subscription, if any.
selector An optional message selector for   this listener.
concurrency The number of concurrent   sessions/consumers to start for this listener. Can either be a simple number   indicating the maximum number (e.g. "5") or a range indicating the   lower as well as the upper limit (e.g. "3-5"). Note that a specified   minimum is just a hint and might be ignored at runtime. Default is the value   provided by the container

<jms:jca-listener-container>

你可能感兴趣的:(SpringFramework4系列之SpringJMS:(五)Jms namespace的使用)