我需要收听多个队列(存在于同一个队列管理器中)。我有用于侦听单个队列的有效 Spring Boot 应用程序代码。但是有什么方法可以从单个 Spring Boot 应用程序连接到多个队列吗?
如果我可以在运行时将侦听器从一个队列切换到另一个队列,还有吗?
我有从单个队列中读取的代码,如下所示:
public class ConnectionConfiguration {
private static final Logger logger = LogManager.getLogger(ConnectionConfiguration.class);
@Value("${LDR_LOCAL_MQ_READ_FACTORYNAME}")
String connectionFactory;
@Value("${LDR_LOCAL_MQ_QUEUENAME}")
String localQueue;
@Value("${jmsConcurrency}")
String concurrency;
@Value("${servers.mq.host}")
private String host;
@Value("${servers.mq.port}")
private Integer port;
@Value("${servers.mq.queue-manager}")
private String queueManager;
@Value("${servers.mq.channel}")
private String channel;
@Value("${servers.mq.queue}")
private String queue;
@Value("${servers.mq.timeout}")
private long timeout;
@Bean
public ConnectionFactory connectionFactory() {
JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean();
jndiObjectFactoryBean.setResourceRef(true);
jndiObjectFactoryBean.setJndiName(connectionFactory);
try {
jndiObjectFactoryBean.afterPropertiesSet();
} catch (IllegalArgumentException e) {
logger.error(e.getMessage(), e);
e.printStackTrace();
} catch (NamingException e) …Run Code Online (Sandbox Code Playgroud)