使用 Vert.X 的响应式组件
以 webclient 为例。应该可以用于开发些接口网关
1、使用 WebClient
- 引入依赖包
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-client</artifactId>
<version>${vertx.version}</version>
</dependency>
- 添加 Vertx 配置器(可用配置各种响应式组件)
@Configuration
public class VertxConfig {
@Bean
public Vertx vertx() {
return Vertx.vertx();
}
@Bean
public WebClient webClient(Vertx vertx) {
return WebClient.create(vertx);
}
}
- 使用 WebClient
@Controller
public class DemoController {
@Inject
WebClient webClient;
@Mapping("/hello")
public Mono<String> hello() {
return Mono.create(sink -> {
webClient.getAbs("https://gitee.com/noear/solon")
.send()
.onSuccess(resp -> {
sink.success(resp.bodyAsString());
}).onFailure(err -> {
sink.error(err);
});
});
}
}