从spring-rabbit中排除的http客户端

时间:2018-06-19 14:45:21

标签: java spring maven spring-boot rabbitmq

我在 Spring Boot 1.5.6.RELEASE 中将http-clientspring-rabbit一起使用,并且工作正常。

Spring Boot 2.0.2.RELEASE 中,http-client已从spring-rabbit pom.xml中排除。

我不想手动添加http-client并跟踪启动版本之间的版本。

spring-boot-starter-amqp-1.5.6.RELEASE

<dependency>
    <groupId>org.springframework.amqp</groupId>
    <artifactId>spring-rabbit</artifactId>
</dependency>

spring-boot-starter-amqp-2.0.2.RELEASE

<dependency>
  <groupId>org.springframework.amqp</groupId>
  <artifactId>spring-rabbit</artifactId>
  <version>2.0.3.RELEASE</version>
  <scope>compile</scope>
  <exclusions>
    <exclusion>
      <artifactId>http-client</artifactId>
      <groupId>com.rabbitmq</groupId>
    </exclusion>
  </exclusions>
</dependency>

为什么http-client被排除在外,我可以在不定义版本的情况下包括在内吗?版本为2.0.1.RELEASE,但未在spring-rabbit中提取为属性。

1 个答案:

答案 0 :(得分:1)

根据Spring AMQP文档,依赖性com.rabbitmq:http-client现在是可选的。显然已更改为允许多个客户端实现。

  

启用管理插件后,RabbitMQ服务器将显示一个   REST API监视和配置代理。 Java绑定   现在提供了API。 com.rabbitmq.http.client.Client是一个   标准的,即时的并因此具有阻塞性的API。它基于   Spring Web模块及其RestTemplate实现。在另一   com.rabbitmq.http.client.ReactorNettyClient是反应式的,   基于Reactor Netty项目的非阻塞实现。

     

跃点依赖项(com.rabbitmq:http-client)现在也是可选的。

  • 客户端:直接阻止的客户端
  • ReactorNettyClient:反应式且无阻塞的客户端

See the documentation

如果要使用标准的http客户端,则可以添加依赖项。请确保您不需要自己跟踪正确的版本。该版本是根据您的spring-boot-starter-amqp版本自动选择的。

// Maven
<dependency>
  <groupId>com.rabbitmq</groupId>
  <artifactId>http-client</artifactId>
</dependency>

// Gradle
compile("com.rabbitmq:http-client")

您还可以参考相关的GitHub项目,了解如何启用特定客户端:rabbitmq/hop