Class ReactorClientHttpConnector

java.lang.Object
org.springframework.http.client.reactive.ReactorClientHttpConnector
All Implemented Interfaces:
Lifecycle, Phased, SmartLifecycle, ClientHttpConnector

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

This class implements SmartLifecycle and can be optionally declared as a Spring-managed bean.

Since:
5.0
Author:
Brian Clozel, Rossen Stoyanchev, Sebastien Deleuze
See Also:
  • HttpClient
  • Field Summary

    Fields inherited from interface org.springframework.context.SmartLifecycle

    DEFAULT_PHASE
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor.
    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.
    ReactorClientHttpConnector(reactor.netty.http.client.HttpClient httpClient)
    Constructor with a pre-configured HttpClient instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    reactor.core.publisher.Mono<ClientHttpResponse>
    connect(HttpMethod method, URI uri, Function<? super ClientHttpRequest,reactor.core.publisher.Mono<Void>> requestCallback)
    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.
    int
    Return the phase that this lifecycle object is supposed to run in.
    boolean
    Returns true if this Lifecycle component should get started automatically by the container at the time that the containing ApplicationContext gets refreshed.
    boolean
    Check whether this component is currently running.
    void
    Start this component.
    void
    Stop this component, typically in a synchronous fashion, such that the component is fully stopped upon return of this method.
    final void
    stop(Runnable callback)
    Indicates that a Lifecycle component must stop if it is currently running.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • 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 stopped or closed and restarted properly when the Spring ApplicationContext is (with JVM Checkpoint Restore for example).

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

      public ReactorClientHttpConnector(reactor.netty.http.client.HttpClient httpClient)
      Constructor with a pre-configured HttpClient instance.
      Parameters:
      httpClient - the client to use
      Since:
      5.1
  • Method Details