Class HttpServiceProxyFactory

java.lang.Object
org.springframework.web.service.invoker.HttpServiceProxyFactory
All Implemented Interfaces:
Aware, InitializingBean, EmbeddedValueResolverAware

public final class HttpServiceProxyFactory extends Object implements InitializingBean, EmbeddedValueResolverAware
Factory for creating a client proxy given an HTTP service interface with @HttpExchange methods.

This class is intended to be declared as a bean in a Spring configuration.

Since:
6.0
Author:
Rossen Stoyanchev
See Also:
  • Constructor Details

  • Method Details

    • addCustomArgumentResolver

      public void addCustomArgumentResolver(HttpServiceArgumentResolver resolver)
      Register a custom argument resolver, invoked ahead of default resolvers.
      Parameters:
      resolver - the resolver to add
    • setCustomArgumentResolvers

      public void setCustomArgumentResolvers(List<HttpServiceArgumentResolver> resolvers)
      Set the custom argument resolvers to use, ahead of default resolvers.
      Parameters:
      resolvers - the resolvers to use
    • setConversionService

      public void setConversionService(ConversionService conversionService)
      Set the ConversionService to use where input values need to be formatted as Strings.

      By default this is DefaultFormattingConversionService.

    • setEmbeddedValueResolver

      public void setEmbeddedValueResolver(StringValueResolver resolver)
      Set the StringValueResolver to use for resolving placeholders and expressions in HttpExchange.url().
      Specified by:
      setEmbeddedValueResolver in interface EmbeddedValueResolverAware
      Parameters:
      resolver - the resolver to use
    • setReactiveAdapterRegistry

      public void setReactiveAdapterRegistry(ReactiveAdapterRegistry registry)
      Set the ReactiveAdapterRegistry to use to support different asynchronous types for HTTP service method return values.

      By default this is ReactiveAdapterRegistry.getSharedInstance().

    • setBlockTimeout

      public void setBlockTimeout(Duration blockTimeout)
      Configure how long to wait for a response for an HTTP service method with a synchronous (blocking) method signature.

      By default this is 5 seconds.

      Parameters:
      blockTimeout - the timeout value
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Description copied from interface: InitializingBean
      Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.

      This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.

      Specified by:
      afterPropertiesSet in interface InitializingBean
      Throws:
      Exception - in the event of misconfiguration (such as failure to set an essential property) or if initialization fails for any other reason
    • createClient

      public <S> S createClient(Class<S> serviceType)
      Return a proxy that implements the given HTTP service interface to perform HTTP requests and retrieve responses through an HTTP client.
      Type Parameters:
      S - the HTTP service type
      Parameters:
      serviceType - the HTTP service to create a proxy for
      Returns:
      the created proxy