org.springframework.beans.factory.access
Class JndiBeanFactoryLocator

java.lang.Object
  extended byorg.springframework.beans.factory.access.JndiBeanFactoryLocator
All Implemented Interfaces:
BeanFactoryLocator
Direct Known Subclasses:
ContextJndiBeanFactoryLocator

public class JndiBeanFactoryLocator
extends Object
implements BeanFactoryLocator

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

This default implementation creates a DefaultListableBeanFactory, populated via an XmlBeanDefinitionReader. Subclasses may override createFactory for custom instantiation.

Author:
Rod Johnson, Colin Sampaleanu
See Also:
DefaultListableBeanFactory, ContextJndiBeanFactoryLocator

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.
protected  Log logger
           
 
Constructor Summary
JndiBeanFactoryLocator()
           
 
Method Summary
protected  BeanFactoryReference createBeanFactory(String[] resources)
          Actually create the BeanFactory, given an array of classpath resource strings which should be combined.
 BeanFactoryReference useBeanFactory(String factoryKey)
          Load/use a bean factory, as specified by a factoryKey which is a JNDI address, of the form java:comp/env/ejb/BeanFactoryPath.
 
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

logger

protected Log logger
Constructor Detail

JndiBeanFactoryLocator

public JndiBeanFactoryLocator()
Method Detail

useBeanFactory

public BeanFactoryReference useBeanFactory(String factoryKey)
                                    throws BeansException
Load/use a bean factory, as specified by a factoryKey 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 subclass) will be created from the combined resources.

Specified by:
useBeanFactory in interface BeanFactoryLocator
Parameters:
factoryKey - a resource name specifying which BeanFactory the BeanFactoryLocator should return for usage. The actual meaning of the resource name is specific to the actual implementation of BeanFactoryLocator.
Returns:
the BeanFactory instance, wrapped as a BeanFactoryReference object
Throws:
BeansException - if there is an error loading or accessing the BeanFactory

createBeanFactory

protected BeanFactoryReference createBeanFactory(String[] resources)
                                          throws BeansException
Actually create the BeanFactory, given an array of classpath resource strings which should be combined. This is split out as a separate method so that subclasses can override the actual type uses (to be an ApplicationContext, for example).

Parameters:
resources - an array of Strings representing classpath resource names
Returns:
the created BeanFactory, wrapped in a BeanFactoryReference
Throws:
BeansException


Copyright (C) 2003-2004 The Spring Framework Project.