如何重写Spring Cloud Stream的rabbitConnectionFactory?

问题描述 投票:0回答:1

我有一个使用 Spring Cloud Stream 和自定义 Rabbit 绑定器的应用程序。现在我必须向活页夹添加一些代理配置,但我不知道如何配置活页夹。顺便说一句,binder 不继承 Spring 环境。任何人都可以帮助我或提供更多背景信息,因为我找不到与该主题相关的任何内容。

活页夹不应该继承Spring环境,我只是想知道如何更改默认的

rabbitConnectionFactory
行为。

我搜索了 Spring Cloud Stream 文档和 Spring Boot 文档,但找不到任何东西

编辑:

对于更多上下文,该应用程序是一个库项目,我想在其他应用程序中实现它以自动注册配置的兔子事件。但我想避免任何其他事件使用我的 Binder 库

目前我的应用程序属性中有一个简单的活页夹配置:

spring:
  cloud:
    stream:
      binders:
        myLibraryBinder:
          type: rabbit
          default-candidate: false
          environment:
            spring:
              rabbitmq:
                host:
                port:
                virtual-host:
                username:
                password:
                requested-heartbeat:
                ssl.enabled:

然后我的生产者和消费者使用该活页夹。

java spring-boot rabbitmq spring-cloud-stream
1个回答
0
投票

Binder 不应该继承 Spring 环境

所以,听起来好像一切都是你自己做的。那么很高兴看到您的一些代码。

无论如何,RabbitMQ Binder 解决方案仍然依赖于一些

org.springframework.amqp.rabbit.connection.ConnectionFactory
,在大多数情况下可能是
CachingConnectionFactory
的实例。那个有演员:

/**
 * Create a new CachingConnectionFactory for the given target ConnectionFactory.
 * @param rabbitConnectionFactory the target ConnectionFactory
 */
public CachingConnectionFactory(com.rabbitmq.client.ConnectionFactory rabbitConnectionFactory) {

这个

rabbitConnectionFactory
可以通过:
RabbitConnectionFactoryBean
创建。您可以在这里按照您需要的方式配置 RabbitMQ 设置。

© www.soinside.com 2019 - 2024. All rights reserved.