code: public void configure(DefaultJmsListenerContainerFactory factory,
  			ConnectionFactory connectionFactory) {
  		Assert.notNull(factory, "Factory must not be null");
  		Assert.notNull(connectionFactory, "ConnectionFactory must not be null");
  		factory.setConnectionFactory(connectionFactory);
  		factory.setPubSubDomain(this.jmsProperties.isPubSubDomain());
  		if (this.transactionManager != null) {
  			factory.setTransactionManager(this.transactionManager);
  		}
  		else {
  			factory.setSessionTransacted(true);
  		}
  		if (this.destinationResolver != null) {
  			factory.setDestinationResolver(this.destinationResolver);
  		}
  		if (this.messageConverter != null) {
  			factory.setMessageConverter(this.messageConverter);
  		}
  		JmsProperties.Listener listener = this.jmsProperties.getListener();
  		factory.setAutoStartup(listener.isAutoStartup());
  		if (listener.getAcknowledgeMode() != null) {
  			factory.setSessionAcknowledgeMode(listener.getAcknowledgeMode().getMode());
  		}
  		String concurrency = listener.formatConcurrency();
  		if (concurrency != null) {
  			factory.setConcurrency(concurrency);
  		}
  	}
docs: Configure the specified jms listener container factory. The factory can be further
  tuned and default settings can be overridden.
  @param factory the {@link DefaultJmsListenerContainerFactory} instance to configure
  @param connectionFactory the {@link ConnectionFactory} to use