public void sendMessage(String... varStrings) {
    String msg = varStrings[0];
    String exchangeName = varStrings[1];
    String qName = varStrings[2];
    String rabbitIp = varStrings[3];

    logger.debug("RabbitMQ Properties Start...");
    logger.debug("Message - " + msg);
    logger.debug("Exchange Name - " + exchangeName);
    logger.debug("QueueName - " + qName);
    logger.debug("IP Address - " + rabbitIp);
    logger.debug("RabbitMQ Properties End...");

    try {
      CachingConnectionFactory factory = new CachingConnectionFactory();
      factory.setAddresses(rabbitIp);
      org.springframework.amqp.rabbit.connection.Connection connection = factory.createConnection();
      Channel channel = connection.createChannel(false);
      channel.basicPublish(exchangeName, qName, null, msg.getBytes());
      channel.close();
      connection.close();
      logger.debug("Message Sent...");

    } catch (Exception e) {
      e.printStackTrace();
    }
  }
 @Override
 public void onApplicationEvent(ContextRefreshedEvent event) {
   if (!this.lazyConnect
       && event.getApplicationContext().equals(getApplicationContext())
       && this.amqpTemplate instanceof RabbitTemplate) {
     ConnectionFactory connectionFactory =
         ((RabbitTemplate) this.amqpTemplate).getConnectionFactory();
     if (connectionFactory != null) {
       try {
         Connection connection = connectionFactory.createConnection();
         if (connection != null) {
           connection.close();
         }
       } catch (RuntimeException e) {
         logger.error("Failed to eagerly establish the connection.", e);
       }
     }
   }
 }