类 ReactorClientHttpConnector

java.lang.Object
cn.taketoday.http.client.reactive.ReactorClientHttpConnector
所有已实现的接口:
cn.taketoday.context.Lifecycle, cn.taketoday.context.Phased, cn.taketoday.context.SmartLifecycle, ClientHttpConnector

public class ReactorClientHttpConnector extends Object implements ClientHttpConnector, cn.taketoday.context.SmartLifecycle
Reactor-Netty implementation of ClientHttpConnector.

This class implements Lifecycle and can be optionally declared as a Infra-managed bean.

从以下版本开始:
4.0
作者:
Brian Clozel, Rossen Stoyanchev, Sebastien Deleuze, Harry Yang
另请参阅:
  • HttpClient
  • 字段详细资料

    • logger

      private static final cn.taketoday.logging.Logger logger
    • defaultInitializer

      private static final Function<reactor.netty.http.client.HttpClient,reactor.netty.http.client.HttpClient> defaultInitializer
    • httpClient

      private reactor.netty.http.client.HttpClient httpClient
    • resourceFactory

      @Nullable private final ReactorResourceFactory resourceFactory
    • mapper

      @Nullable private final Function<reactor.netty.http.client.HttpClient,reactor.netty.http.client.HttpClient> mapper
    • running

      private volatile boolean running
    • lifecycleMonitor

      private final Object lifecycleMonitor
  • 构造器详细资料

    • ReactorClientHttpConnector

      public ReactorClientHttpConnector()
      Default constructor. Initializes HttpClient via:
       HttpClient.create().compress()
       
    • ReactorClientHttpConnector

      public ReactorClientHttpConnector(ReactorResourceFactory resourceFactory, Function<reactor.netty.http.client.HttpClient,reactor.netty.http.client.HttpClient> mapper)
      Constructor with externally managed Reactor Netty resources, including LoopResources for event loop threads, and ConnectionProvider for the connection pool.

      This constructor should be used only when you don't want the client to participate in the Reactor Netty global resources. By default the client participates in the Reactor Netty global resources held in HttpResources, which is recommended since fixed, shared resources are favored for event loop concurrency. However, consider declaring a ReactorResourceFactory bean with globalResources=true in order to ensure the Reactor Netty global resources are shut down when the Spring ApplicationContext is closed.

      参数:
      resourceFactory - the resource factory to obtain the resources from
      mapper - a mapper for further initialization of the created client
    • ReactorClientHttpConnector

      public ReactorClientHttpConnector(reactor.netty.http.client.HttpClient httpClient)
      Constructor with a pre-configured HttpClient instance.
      参数:
      httpClient - the client to use
  • 方法详细资料

    • createHttpClient

      private static reactor.netty.http.client.HttpClient createHttpClient(ReactorResourceFactory resourceFactory, Function<reactor.netty.http.client.HttpClient,reactor.netty.http.client.HttpClient> mapper)
    • applyLoopResources

      private static Function<reactor.netty.http.client.HttpClient,reactor.netty.http.client.HttpClient> applyLoopResources(ReactorResourceFactory factory)
    • connect

      public reactor.core.publisher.Mono<ClientHttpResponse> connect(HttpMethod method, URI uri, Function<? super ClientHttpRequest,reactor.core.publisher.Mono<Void>> requestCallback)
      从接口复制的说明: ClientHttpConnector
      Connect to the origin server using the given HttpMethod and URI and apply the given requestCallback when the HTTP request of the underlying API can be initialized and written to.
      指定者:
      connect 在接口中 ClientHttpConnector
      参数:
      method - the HTTP request method
      uri - the HTTP request URI
      requestCallback - a function that prepares and writes to the request, returning a publisher that signals when it's done writing. Implementations can return a Mono<Void> by calling ReactiveHttpOutputMessage.writeWith(org.reactivestreams.Publisher<? extends cn.taketoday.core.io.buffer.DataBuffer>) or ReactiveHttpOutputMessage.setComplete().
      返回:
      publisher for the ClientHttpResponse
    • adaptRequest

      private ReactorClientHttpRequest adaptRequest(HttpMethod method, URI uri, reactor.netty.http.client.HttpClientRequest request, reactor.netty.NettyOutbound nettyOutbound)
    • start

      public void start()
      指定者:
      start 在接口中 cn.taketoday.context.Lifecycle
    • stop

      public void stop()
      指定者:
      stop 在接口中 cn.taketoday.context.Lifecycle
    • stop

      public final void stop(Runnable callback)
      指定者:
      stop 在接口中 cn.taketoday.context.SmartLifecycle
    • isRunning

      public boolean isRunning()
      指定者:
      isRunning 在接口中 cn.taketoday.context.Lifecycle
    • isAutoStartup

      public boolean isAutoStartup()
      指定者:
      isAutoStartup 在接口中 cn.taketoday.context.SmartLifecycle
    • getPhase

      public int getPhase()
      指定者:
      getPhase 在接口中 cn.taketoday.context.Phased
      指定者:
      getPhase 在接口中 cn.taketoday.context.SmartLifecycle