org.springframework.jms.support.destination

## Class BeanFactoryDestinationResolver

- java.lang.Object
- - org.springframework.jms.support.destination.BeanFactoryDestinationResolver

- All Implemented Interfaces:
    Aware, BeanFactoryAware, DestinationResolver

      public class BeanFactoryDestinationResolver
      extends Object
      implements DestinationResolver, BeanFactoryAware

  `DestinationResolver` implementation based on a Spring `BeanFactory`.

  Will lookup Spring managed beans identified by bean name, expecting them to be of type `javax.jms.Destination`.

  Since:
    2.5
  Author:
    Juergen Hoeller
  See Also:
    `BeanFactory`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BeanFactoryDestinationResolver()` Create a new instance of the `BeanFactoryDestinationResolver` class.
    `BeanFactoryDestinationResolver(BeanFactory beanFactory)` Create a new instance of the `BeanFactoryDestinationResolver` class.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Destination` | `resolveDestinationName(Session session, String destinationName, boolean pubSubDomain)` Resolve the given destination name, either as located resource or as dynamic destination.
    `void` | `setBeanFactory(BeanFactory beanFactory)` Callback that supplies the owning factory to a bean instance.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BeanFactoryDestinationResolver

          public BeanFactoryDestinationResolver()

      Create a new instance of the `BeanFactoryDestinationResolver` class.

      The BeanFactory to access must be set via `setBeanFactory`.

      See Also:
        `setBeanFactory(org.springframework.beans.factory.BeanFactory)`

    - #### BeanFactoryDestinationResolver

          public BeanFactoryDestinationResolver(BeanFactory beanFactory)

      Create a new instance of the `BeanFactoryDestinationResolver` class.

      Use of this constructor is redundant if this object is being created by a Spring IoC container, as the supplied `BeanFactory` will be replaced by the `BeanFactory` that creates it (c.f. the `BeanFactoryAware` contract). So only use this constructor if you are using this class outside the context of a Spring IoC container.

      Parameters:
        `beanFactory` - the bean factory to be used to lookup `Destinatiosn`

  - ### Method Detail

    - #### setBeanFactory

          public void setBeanFactory(BeanFactory beanFactory)

      Description copied from interface: `BeanFactoryAware`
      Callback that supplies the owning factory to a bean instance.

      Invoked after the population of normal bean properties but before an initialization callback such as `InitializingBean.afterPropertiesSet()` or a custom init-method.

      Specified by:
        `setBeanFactory` in interface `BeanFactoryAware`
      Parameters:
        `beanFactory` - owning BeanFactory (never `null`). The bean can immediately call methods on the factory.
      See Also:
        `BeanInitializationException`

    - #### resolveDestinationName

          public Destination resolveDestinationName(Session session,
                                           String destinationName,
                                           boolean pubSubDomain)
                                             throws JMSException

      Description copied from interface: `DestinationResolver`
      Resolve the given destination name, either as located resource or as dynamic destination.
      Specified by:
        `resolveDestinationName` in interface `DestinationResolver`
      Parameters:
        `session` - the current JMS Session (may be `null` if the resolver implementation is able to work without it)
        `destinationName` - the name of the destination
        `pubSubDomain` - `true` if the domain is pub-sub, `false` if P2P
      Returns:
        the JMS destination (either a topic or a queue)
      Throws:
        `JMSException` - if the JMS Session failed to resolve the destination