如何在没有 Spring 引导的情况下使用 Spring WebClient
How to use Spring WebClient without Spring Boot
我对发出 HTTP 请求的需求非常有限。我看到 WebClient 是 RestTemplate 的新替代品。但似乎无法使用 WebClient,而不拖入整个 spring 引导;这不是我想做的。没有 Spring 引导就可以使用 WebClient 的任何方法?
您可以使用 Reactor Netty HttpClient (docs) 发出异步 HTTP 请求。 Spring WebClient 在后台使用它。
只需添加依赖项
<dependency>
<groupId>io.projectreactor.netty</groupId>
<artifactId>reactor-netty</artifactId>
<version>0.9.11.RELEASE</version>
</dependency>
并提出请求
HttpClient.create()
.request(HttpMethod.GET)
.uri("http://example.com/")
.responseContent()
.asString()
.subscribe(System.out::println);
我遇到了同样的问题,我这样做解决了它。
您需要在 src/main/resources 文件夹中创建一个 logback.xml 文件
并复制这个
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
</configuration>
如果您已经有了这个文件,只需在您的配置中添加这个 statusLIstener。
我对发出 HTTP 请求的需求非常有限。我看到 WebClient 是 RestTemplate 的新替代品。但似乎无法使用 WebClient,而不拖入整个 spring 引导;这不是我想做的。没有 Spring 引导就可以使用 WebClient 的任何方法?
您可以使用 Reactor Netty HttpClient (docs) 发出异步 HTTP 请求。 Spring WebClient 在后台使用它。 只需添加依赖项
<dependency>
<groupId>io.projectreactor.netty</groupId>
<artifactId>reactor-netty</artifactId>
<version>0.9.11.RELEASE</version>
</dependency>
并提出请求
HttpClient.create()
.request(HttpMethod.GET)
.uri("http://example.com/")
.responseContent()
.asString()
.subscribe(System.out::println);
我遇到了同样的问题,我这样做解决了它。
您需要在 src/main/resources 文件夹中创建一个 logback.xml 文件 并复制这个
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
</configuration>
如果您已经有了这个文件,只需在您的配置中添加这个 statusLIstener。