我在 Spring Boot 1.5.6.RELEASE 中将http-client
与spring-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
中提取为属性。
答案 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)现在也是可选的。
如果要使用标准的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