private RabbitTemplate determineRabbitTemplate(RabbitPropertiesAccessor properties) {
   RabbitTemplate rabbitTemplate = null;
   if (properties.isBatchingEnabled(this.defaultBatchingEnabled)) {
     BatchingStrategy batchingStrategy =
         new SimpleBatchingStrategy(
             properties.getBatchSize(this.defaultBatchSize),
             properties.geteBatchBufferLimit(this.defaultBatchBufferLimit),
             properties.getBatchTimeout(this.defaultBatchTimeout));
     rabbitTemplate =
         new BatchingRabbitTemplate(
             batchingStrategy,
             getApplicationContext()
                 .getBean(IntegrationContextUtils.TASK_SCHEDULER_BEAN_NAME, TaskScheduler.class));
     rabbitTemplate.setConnectionFactory(this.connectionFactory);
   }
   if (properties.isCompress(this.defaultCompress)) {
     if (rabbitTemplate == null) {
       rabbitTemplate = new RabbitTemplate(this.connectionFactory);
     }
     rabbitTemplate.setBeforePublishPostProcessors(this.compressingPostProcessor);
     rabbitTemplate.afterPropertiesSet();
   }
   if (rabbitTemplate == null) {
     rabbitTemplate = this.rabbitTemplate;
   }
   return rabbitTemplate;
 }