org.springframework.context.access
Class ContextJndiBeanFactoryLocator

java.lang.Object
  extended by org.springframework.jndi.JndiAccessor
      extended by org.springframework.jndi.JndiLocatorSupport
          extended by 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
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
ContextJndiBeanFactoryLocator()
           
 
Method Summary
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