Class RSocketServiceProxyFactory

java.lang.Object
org.springframework.messaging.rsocket.service.RSocketServiceProxyFactory
All Implemented Interfaces:
Aware, InitializingBean, EmbeddedValueResolverAware

public final class RSocketServiceProxyFactory extends Object implements InitializingBean, EmbeddedValueResolverAware
Factory for creating a client proxy given an RSocket service interface with @RSocketExchange methods.

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

Since:
6.0
Author:
Rossen Stoyanchev
  • Constructor Details

    • RSocketServiceProxyFactory

      public RSocketServiceProxyFactory(RSocketRequester rsocketRequester)
      Create an instance with the underlying RSocketRequester to perform requests with.
      Parameters:
      rsocketRequester - the requester to use
  • Method Details

    • addCustomArgumentResolver

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

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

      public void setEmbeddedValueResolver(StringValueResolver resolver)
      Set the StringValueResolver to use for resolving placeholders and expressions in RSocketExchange.value().
      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 RSocket 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 RSocket 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 RSocket service interface to perform RSocket requests and retrieve responses through the configured RSocketRequester.
      Type Parameters:
      S - the RSocket service type
      Parameters:
      serviceType - the RSocket service to create a proxy for
      Returns:
      the created proxy