<!-- CachingConnectionFactory Definition, sessionCacheSize property is the number of sessions to cache --> <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <constructor-arg ref="amqConnectionFactory"/> <property name="exceptionListener" ref="jmsExceptionListener"/> <property name="sessionCacheSize" value="100"/> <property name="cacheConsumers" value="true"/> </bean> <!-- JmsTemplate Definition --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <constructor-arg ref="connectionFactory"/> </bean> <amq:connectionFactory id="amqConnectionFactory" brokerURL="${jms.brokerURL}" userName="${jms.username}" password="${jms.password}"/> <jms:listener-container concurrency="1" destination-type="queue"> <jms:listener id="QueueListener" destination="${ssm.queque.name}" ref="queueListener"/> </jms:listener-container> <jms:listener-container concurrency="1" destination-type="topic"> <jms:listener id="TopicListener" destination="${topic.name}" ref="topicListener"/> </jms:listener-container>