在Spring Boot中,可以使用JMSListener注解来监听消息队列中的消息。要为JMSListener注解动态添加不同的目的地,可以通过以下步骤实现:
@Configuration
public class JmsConfig {
@Bean
public ConnectionFactory connectionFactory() {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
connectionFactory.setBrokerURL("tcp://localhost:61616");
return connectionFactory;
}
@Bean
public DestinationResolver destinationResolver() {
return new DynamicDestinationResolver();
}
}
@Component
public class MessageListener {
@JmsListener(destination = "#{destinationResolver.resolveDestinationName('queue.dynamic', null)}")
public void handleMessage(String message) {
System.out.println("Received message: " + message);
}
}
在上面的示例中,使用SpEL表达式#{destinationResolver.resolveDestinationName('queue.dynamic', null)}
来动态指定目的地。可以根据实际需求修改目的地的名称。
@SpringBootApplication
@EnableJms
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
通过以上步骤,就可以在Spring Boot中为JMSListener注解动态添加不同的目的地。每个目的地可以对应不同的消息队列,实现灵活的消息处理。
领取专属 10元无门槛券
手把手带您无忧上云