【问题标题】:Spring-jms. How to customize broker url for rabbitmq?弹簧-jms。如何为 rabbitmq 自定义代理 url?
【发布时间】:2017-08-21 13:47:11
【问题描述】:

我阅读的所有与 activeMq 和 spring-boot 相关的示例都具有更改代理 url 的特殊属性:

spring.activemq.broker-url=<SOME_URL>

默认情况下,它使用默认设置:默认 url 和默认端口。
但我使用 rabbirMq,我想知道如何更改代理 url

我读过this one

我已将application.properties 添加到src/main/resources 以下内容(主机绝对错误,我预计会看到错误):

spring.rabbitmq.host=olololo
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

但不影响申请。 看起来 spring(boot) 没有读取这些优先级。

附言

项目结构如下:

【问题讨论】:

    标签: java spring-boot configuration rabbitmq spring-jms


    【解决方案1】:

    Spring Boot 不支持 rabbitmq-jms 的自动配置(你引用的链接是原生的 RabbitMQ AMQP 自动配置)。

    对于 JMS 连接工厂,您必须自己进行配置...

    @Bean
    public RMQConnectionFactory connectionFactory(@Value("${spring.rabbitmq.host}") String host,
            @Value("${spring.rabbitmq.port}") int port) {
        RMQConnectionFactory cf = new RMQConnectionFactory();
        cf.setHost(host);
        cf.setPort(port);
        return cf;
    }
    

    【讨论】:

    • 如果写入错误的 url - 应用程序打印:无法刷新目标“my_queue_new”的 JMS 连接 - 使用 FixedBackOff{interval=5000, currentAttempts=0, maxAttempts=unlimited} 重试。原因:ololo
    • 所以不要“写”错误的 URL :) 你期望什么?
    • 好吧,尽管我预计应用程序不会启动(无法从上下文或类似的东西加载 bean)。我相信开发人员有理由这样做。
    • spring-jms 就是这样处理连接问题的。
    • 据我了解,我可以用我自己的 AbstractPollingMessageListenerContainer 实现替换 DefaultMessageListenerContainer
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2023-03-08
    • 2017-12-21
    • 2014-12-13
    • 2019-01-06
    • 2011-06-30
    相关资源
    最近更新 更多