首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Spring boot中为JMSListener注解动态添加不同的目的地?

在Spring Boot中,可以使用JMSListener注解来监听消息队列中的消息。要为JMSListener注解动态添加不同的目的地,可以通过以下步骤实现:

  1. 创建一个配置类,用于配置消息队列的连接工厂和目的地。可以使用ActiveMQConnectionFactory来创建连接工厂,并使用DynamicDestinationResolver来动态解析目的地。
代码语言:txt
复制
@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();
    }
}
  1. 创建一个消息监听器,使用JMSListener注解来监听消息队列。在注解中,可以使用SpEL表达式来动态指定目的地。
代码语言:txt
复制
@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)}来动态指定目的地。可以根据实际需求修改目的地的名称。

  1. 在Spring Boot应用程序的入口类上添加@EnableJms注解,启用JMS功能。
代码语言:txt
复制
@SpringBootApplication
@EnableJms
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

通过以上步骤,就可以在Spring Boot中为JMSListener注解动态添加不同的目的地。每个目的地可以对应不同的消息队列,实现灵活的消息处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Boot整合ActiveMQ

为了让你Spring Boot应用支持ActiveMQ,需要在pom.xml文件添加如下依赖: org.springframework.boot<...ActiveMQstarter依赖,那么我们只需要在配置文件配置一些必需属性,那么Spring Boot在初始化Spring bean时候就会自动装配操作ActiveMQ相关类,并存储Spring...,sendMsg方法一旦被调用,那么jmsTemplate就会发送一条消息到默认目的地地址,也就是上面的配置文件spring.jms.template.default-destination值,...而receiveMsg方法上面添加了一个@JmsListener注解,这个注解属性destination就指向了spring.jms.template.default-destination值,也就是消息发送地址...我们再在Controller添加一个方法,用来验证User类型消息发送与消费。

1.4K20

SpringBoot消息源码:JmsListener注解解析

JmsListener注解解析 JMS 消息分发送消息和接收消息两种功能,发送消息很简单,注入 Jms Template 到对应Bean 即可使用。...@JmsListener 注解是由 Spring 提供,它位于 spring-jms 包下。Spring 会对注解了@JmsListener 方 法 进 行 处 理 。...注解,而又没有自定义 JmsL istenerContainer-Factory时,Spring Boot 会自动创建一个默认对象。...关于@JmsListener 使用及原理,我们就讲到这里。 小结 本章重点分析了 Spring Boot JMS 和 ActiveMQ 自动配置。...针对 JMS 注解部分,Spring Boot 也提供了专门自动配置类 JmsAnnotationDrivenConfiguration 进行一系列默认配置 ,本章并未进行讲解,读者朋友可自行阅读

91120

何在SpringBoot应用实现跨域访问资源和消息通信?

浏览器支持在API容器(XMLHttpRequest或Fetch )使用CORS,以降低跨域HTTP请求所带来风险。 本节将介绍如何在Spring Boot应用,实现跨域访问资源。...在Spring Boot应用中允许跨域访问 在微服务架构里面,由于每个服务都在其自身运行,因此,很容易就会遇到来自多个来源客户端Web应用程序来访问服务问题(即跨域访问)。...1.使用JNDI ConnectionFactory 在应用程序Spring Boot将尝试使用JNDI找到JMS ConnectionFactory。...可以使用@JmsListener注解任何bean,以创建侦听器端点。...Spring Boot提供了几种通过RabbitMQ与AMQP协同工作开箱即用方式,包括spring-boot- sarter-amqp等各种Starter。

1.5K10

SpringBoot 笔记(十一):Servlet容器

SpringBoot 笔记 (六): 消息 1.基本概念 1.应用场景 2.重要概念 消息代理(broker):消息队列服务器 目的地:消息消费者 1.消息队列两种目的地: 队列:点对点通讯,这种就是消息生产者把消息发送到消息队列...提供JmsTemplate、Rabbit Template来发送消息 @JmsListener(JMS)、@RabbitListener(AMQP)注解在方法上监听消息代理发 布消息 @EnableJms...、@EnableRabbit开启支持 6.Spring Boot自动配置 JmsAutoConfiguration RabbitAutoConfiguration 7.RabbitMQ基本结构 首先我们产生消息我们叫做...starter 1234 org.springframework.boot spring-boot-starter-amqp...以上我们看到是单播例子,其实广播以及模式匹配我们只是使用了不同exchange就能达到目的。

70250

SpringBoot 笔记 ( 六):消息

SpringBoot 笔记 (六): 消息 1.基本概念 1.应用场景 2.重要概念 消息代理(broker):消息队列服务器 目的地:消息消费者 1.消息队列两种目的地: 队列:点对点通讯,这种就是消息生产者把消息发送到消息队列...提供JmsTemplate、Rabbit Template来发送消息 @JmsListener(JMS)、@RabbitListener(AMQP)注解在方法上监听消息代理发 布消息 @EnableJms...、@EnableRabbit开启支持 6.Spring Boot自动配置 JmsAutoConfiguration RabbitAutoConfiguration 7.RabbitMQ基本结构 首先我们产生消息我们叫做...starter 1234 org.springframework.boot spring-boot-starter-amqp...以上我们看到是单播例子,其实广播以及模式匹配我们只是使用了不同exchange就能达到目的。

68760

Spring认证指南-了解如何使用 JMS 代理发布和订阅消息

Spring Initializr 开始 您可以使用这个预先初始化项目并单击 Generate 下载 ZIP 文件。此项目配置适合本教程示例。...@EnableAutoConfiguration:告诉 Spring Boot 根据类路径设置、其他 bean 和各种属性设置开始添加 bean。...JmsListener因为我们使用 DefaultJmsListenerContainerFactoryConfigurer是 Spring Boot 提供基础设施,这 JmsMessageListenerContainer...默认情况下,Spring Boot通过JmsTemplate设置. 也以相同方式配置。要覆盖,请通过 Boot 属性设置(在内部或通过设置环境变量)进行设置。然后确保接收容器具有相同设置。...构建可执行 jar 可以在整个开发生命周期、跨不同环境等轻松地作为应用程序交付、版本化和部署服务。 如果您使用 Gradle,则可以使用./gradlew bootRun.

96220

ActiveMQ使用入门

添加使用者账号 ActiveMQ默认使用是不需要账号和密码,在实际使用当然不合适,我们可以修改 ~\conf\activemq.xml 文件,添加简单验证账号。...修改配置文件,在元素添加验证插件:(如需直接获得代码可往底部链接)  然后再把上述配置username和password,配置在 ~\conf\credentials.properties 文件...5 使用 Spring Boot 简化JMS开发 5.1 发送字符串消息 (1)创建 spring boot 项目,引入 spring-boot-starter-activemq  (2)在 application.yml...配置 activemq 连接 (3)在Spring配置类创建Destination(消息目的地)——Queue(队列)  (4)使用“JmsMessagingTemplate”实现消息生产者...(4)使用“@JmsListener”实现消息消费者 spring 提供了“@JmsListener注解,用于指定接收特定队列消息消费者方法。

1.6K50

MQ中间件概念一览

消息服务两个重要概念:         消息代理(message broker)和目的地(destination) 当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。...Spring支持 • spring-jms提供了对JMS支持 • spring-rabbit提供了对AMQP支持 • 需要ConnectionFactory实现来连接消息代理 • 提供JmsTemplate...、RabbitTemplate来发送消息 • @JmsListener(JMS)、@RabbitListener(AMQP)注解在方法上监听消息 代理发布消息 • @EnableJms、@EnableRabbit...Spring Boot自动配置 • JmsAutoConfiguration • RabbitAutoConfiguration  10、市面的MQ产品 • ActiveMQ、RabbitMQ...Exchange有4种类型:direct(默认),fanout, topic, 和headers,不同类型Exchange转发消息策略有所区别 Queue 消息队列,用来保存消息直到发送给消费者

19730
领券