org.springframework.context.access

## Class ContextJndiBeanFactoryLocator

- java.lang.Object
- - org.springframework.jndi.JndiAccessor
  - - org.springframework.jndi.JndiLocatorSupport
    - - org.springframework.context.access.ContextJndiBeanFactoryLocator

- All Implemented Interfaces:
    BeanFactoryLocator

      public class ContextJndiBeanFactoryLocator
      extends JndiLocatorSupport
      implements BeanFactoryLocator

  BeanFactoryLocator implementation that creates the BeanFactory from one or more classpath locations specified in a JNDI environment variable.

  This default implementation creates a `ClassPathXmlApplicationContext`. Subclasses may override `createBeanFactory(java.lang.String[])` for custom instantiation.

  Author:
    Colin Sampaleanu, Juergen Hoeller
  See Also:
    `createBeanFactory(java.lang.String[])`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `BEAN_FACTORY_PATH_DELIMITERS` Any number of these characters are considered delimiters between multiple bean factory config paths in a single String value.

    - ### Fields inherited from class org.springframework.jndi.JndiLocatorSupport

      `CONTAINER_PREFIX`

    - ### Fields inherited from class org.springframework.jndi.JndiAccessor

      `logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ContextJndiBeanFactoryLocator()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected ApplicationContext` | `createApplicationContext(String[] resources)` Create the ApplicationContext instance, given an array of class path resource Strings which should be combined
    `protected BeanFactoryReference` | `createBeanFactory(String[] resources)` Create the BeanFactory instance, given an array of class path resource Strings which should be combined.
    `BeanFactoryReference` | `useBeanFactory(String factoryKey)` Load/use a bean factory, as specified by a factory key which is a JNDI address, of the form `java:comp/env/ejb/BeanFactoryPath`.

    - ### Methods inherited from class org.springframework.jndi.JndiLocatorSupport

      `convertJndiName, isResourceRef, lookup, lookup, setResourceRef`

    - ### Methods inherited from class org.springframework.jndi.JndiAccessor

      `getJndiEnvironment, getJndiTemplate, setJndiEnvironment, setJndiTemplate`

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

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

- - ### Field Detail

    - #### BEAN_FACTORY_PATH_DELIMITERS

          public static final String BEAN_FACTORY_PATH_DELIMITERS

      Any number of these characters are considered delimiters between multiple bean factory config paths in a single String value.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ContextJndiBeanFactoryLocator

          public ContextJndiBeanFactoryLocator()

  - ### Method Detail

    - #### useBeanFactory

          public BeanFactoryReference useBeanFactory(String factoryKey)
                                              throws BeansException

      Load/use a bean factory, as specified by a factory key which is a JNDI address, of the form `java:comp/env/ejb/BeanFactoryPath`. The contents of this JNDI location must be a string containing one or more classpath resource names (separated by any of the delimiters '`,; \t\n`' if there is more than one. The resulting BeanFactory (or ApplicationContext) will be created from the combined resources.
      Specified by:
        `useBeanFactory` in interface `BeanFactoryLocator`
      Parameters:
        `factoryKey` - a resource name specifying which `BeanFactory` the `BeanFactoryLocator` must return for usage. The actual meaning of the resource name is specific to the implementation of `BeanFactoryLocator`.
      Returns:
        the `BeanFactory` instance, wrapped as a `BeanFactoryReference` object
      Throws:
        `BeansException` - if there is an error loading or accessing the `BeanFactory`
      See Also:
        `createBeanFactory(java.lang.String[])`

    - #### createBeanFactory

          protected BeanFactoryReference createBeanFactory(String[] resources)
                                                    throws BeansException

      Create the BeanFactory instance, given an array of class path resource Strings which should be combined. This is split out as a separate method so that subclasses can override the actual BeanFactory implementation class.

      Delegates to `createApplicationContext` by default, wrapping the result in a ContextBeanFactoryReference.

      Parameters:
        `resources` - an array of Strings representing classpath resource names
      Returns:
        the created BeanFactory, wrapped in a BeanFactoryReference (for example, a ContextBeanFactoryReference wrapping an ApplicationContext)
      Throws:
        `BeansException` - if factory creation failed
      See Also:
        `createApplicationContext(java.lang.String[])`, `ContextBeanFactoryReference`

    - #### createApplicationContext

          protected ApplicationContext createApplicationContext(String[] resources)
                                                         throws BeansException

      Create the ApplicationContext instance, given an array of class path resource Strings which should be combined
      Parameters:
        `resources` - an array of Strings representing classpath resource names
      Returns:
        the created ApplicationContext
      Throws:
        `BeansException` - if context creation failed