Class CachingDestinationResolverProxy<D>

Type Parameters:
D - the destination type
All Implemented Interfaces:
InitializingBean, DestinationResolver<D>

public class CachingDestinationResolverProxy<D> extends Object implements DestinationResolver<D>, InitializingBean
DestinationResolver implementation that proxies a target DestinationResolver, caching its resolveDestination(java.lang.String) results. Such caching is particularly useful if the destination resolving process is expensive (e.g. the destination has to be resolved through an external system) and the resolution results are stable anyway.
Agim Emruli, Juergen Hoeller
See Also:
  • Constructor Details

    • CachingDestinationResolverProxy

      public CachingDestinationResolverProxy()
      Create a new CachingDestinationResolverProxy, setting the target DestinationResolver through the setTargetDestinationResolver(org.springframework.messaging.core.DestinationResolver<D>) bean property.
    • CachingDestinationResolverProxy

      public CachingDestinationResolverProxy(DestinationResolver<D> targetDestinationResolver)
      Create a new CachingDestinationResolverProxy using the given target DestinationResolver to actually resolve destinations.
      targetDestinationResolver - the target DestinationResolver to delegate to
  • Method Details

    • setTargetDestinationResolver

      public void setTargetDestinationResolver(DestinationResolver<D> targetDestinationResolver)
      Set the target DestinationResolver to delegate to.
    • afterPropertiesSet

      public void afterPropertiesSet()
      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
    • resolveDestination

      public D resolveDestination(String name) throws DestinationResolutionException
      Resolves and caches destinations if successfully resolved by the target DestinationResolver implementation.
      Specified by:
      resolveDestination in interface DestinationResolver<D>
      name - the destination name to be resolved
      the currently resolved destination or an already cached destination
      DestinationResolutionException - if the target DestinationResolver reports an error during destination resolution