Я разработал @JMSListener, который получает пункт назначения из свойств Java и работает просто отлично.
Но теперь мне нужно было бы иметь возможность изменять «пункт назначения» очереди во время выполнения, не имея для сброса всего приложения, и даже если я изменю Свойства во время выполнения, очередь «назначение» не изменится.
Вот как мы реализуем @JMSListener:
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.jms.support.converter.MessageConverter;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@Component("b2b.CCRReceiver")
@Slf4j
public class CCRReceiver {
//SOME_VARIABLES
@Transactional
@JmsListener(destination = "${tibco.configuration.queues.upsert}", containerFactory = "jmsFactory", concurrency = "${jms.concurrency}")
public void receiveMessage(Message message) {
//DO_SOME_STUFF
}
}
Как видите, я получаю пункт назначения из выражения значения в первый раз, и он работает нормально, но потом я не знаю, как получить доступ к JMSListener и изменить его пункт назначения.
Можно ли это сделать? Есть ли способ изменить пункт назначения?
Или мне придется реализовать этот JMS Listener другим способом, который позволяет мне это сделать?