org.springframework.beans.factory
Class BeanFactoryUtils


public abstract class BeanFactoryUtils

Convenience methods operating on bean factories, returning bean instances, names or counts taking into account the nesting hierarchy of a bean factory.

Author:
Rod Johnson, Juergen Hoeller
Version: $Id: BeanFactoryUtils.java,v 1.1 2004/02/04 17:23:23 jhoeller Exp $
Since: 04-Jul-2003

Method Summary
 static String[]beanNamesIncludingAncestors(ListableBeanFactory lbf)
          Return all bean names in the factory, including ancestor factories.
 static String[]beanNamesIncludingAncestors(ListableBeanFactory lbf, Class type)
          Get all bean names for the given type, including those defined in ancestor factories.
 static ObjectbeanOfType(ListableBeanFactory lbf, Class type, boolean includePrototypes, boolean includeFactoryBeans)
          Return a single bean of the given type or subtypes, not looking in ancestor factories.
 static ObjectbeanOfType(ListableBeanFactory lbf, Class type)
          Return a single bean of the given type or subtypes, not looking in ancestor factories.
 static ObjectbeanOfTypeIncludingAncestors(ListableBeanFactory lbf, Class type, boolean includePrototypes, boolean includeFactoryBeans)
          Return a single bean of the given type or subtypes, also picking up beans defined in ancestor bean factories if the current bean factory is a HierarchicalBeanFactory.
 static MapbeansOfTypeIncludingAncestors(ListableBeanFactory lbf, Class type, boolean includePrototypes, boolean includeFactoryBeans)
          Return all beans of the given type or subtypes, also picking up beans defined in ancestor bean factories if the current bean factory is a HierarchicalBeanFactory.
 static intcountBeansIncludingAncestors(ListableBeanFactory lbf)
          Count all bean definitions in any hierarchy in which this factory participates.

Method Detail

beanNamesIncludingAncestors

public static String[] beanNamesIncludingAncestors(ListableBeanFactory lbf)
Return all bean names in the factory, including ancestor factories.
Parameters:
lbf - the bean factory
Returns: the array of bean names, or an empty array if none

beanNamesIncludingAncestors

public static String[] beanNamesIncludingAncestors(ListableBeanFactory lbf, Class type)
Get all bean names for the given type, including those defined in ancestor factories. Will return unique names in case of overridden bean definitions.
Parameters:
lbf - ListableBeanFactory. If this isn't also a HierarchicalBeanFactory, this method will return the same as it's own getBeanDefinitionNames() method.
type - the type that beans must match
Returns: the array of bean names, or an empty array if none

beanOfType

public static Object beanOfType(ListableBeanFactory lbf, Class type, boolean includePrototypes, boolean includeFactoryBeans)
throws org.springframework.beans.BeansException
Return a single bean of the given type or subtypes, not looking in ancestor factories. Useful convenience method when we expect a single bean and don't care about the bean name.
Parameters:
lbf - the bean factory
type - type of bean to match
includePrototypes - whether to include prototype beans too or just singletons (also applies to FactoryBeans)
includeFactoryBeans - whether to include FactoryBeans too or just normal beans
Returns: the Map of bean instances, or an empty Map if none
Throws:
org.springframework.beans.factory.NoSuchBeanDefinitionException - if 0 or more than 1 beans of the given type were found
org.springframework.beans.BeansException - if the bean could not be created

beanOfType

public static Object beanOfType(ListableBeanFactory lbf, Class type)
throws org.springframework.beans.BeansException
Return a single bean of the given type or subtypes, not looking in ancestor factories. Useful convenience method when we expect a single bean and don't care about the bean name. This version of beanOfType automatically includes prototypes and FactoryBeans.
Parameters:
lbf - the bean factory
type - type of bean to match
Returns: the Map of bean instances, or an empty Map if none
Throws:
org.springframework.beans.factory.NoSuchBeanDefinitionException - if 0 or more than 1 beans of the given type were found
org.springframework.beans.BeansException - if the bean could not be created

beanOfTypeIncludingAncestors

public static Object beanOfTypeIncludingAncestors(ListableBeanFactory lbf, Class type, boolean includePrototypes, boolean includeFactoryBeans)
throws org.springframework.beans.BeansException
Return a single bean of the given type or subtypes, also picking up beans defined in ancestor bean factories if the current bean factory is a HierarchicalBeanFactory. Useful convenience method when we expect a single bean and don't care about the bean name.
Parameters:
lbf - the bean factory
type - type of bean to match
includePrototypes - whether to include prototype beans too or just singletons (also applies to FactoryBeans)
includeFactoryBeans - whether to include FactoryBeans too or just normal beans
Returns: the Map of bean instances, or an empty Map if none
Throws:
org.springframework.beans.factory.NoSuchBeanDefinitionException - if 0 or more than 1 beans of the given type were found
org.springframework.beans.BeansException - if the bean could not be created

beansOfTypeIncludingAncestors

public static Map beansOfTypeIncludingAncestors(ListableBeanFactory lbf, Class type, boolean includePrototypes, boolean includeFactoryBeans)
throws org.springframework.beans.BeansException
Return all beans of the given type or subtypes, also picking up beans defined in ancestor bean factories if the current bean factory is a HierarchicalBeanFactory. The return list will only contain beans of this type. Useful convenience method when we don't care about bean names.
Parameters:
lbf - the bean factory
type - type of bean to match
includePrototypes - whether to include prototype beans too or just singletons (also applies to FactoryBeans)
includeFactoryBeans - whether to include FactoryBeans too or just normal beans
Returns: the Map of bean instances, or an empty Map if none
Throws:
org.springframework.beans.BeansException - if the beans could not be created

countBeansIncludingAncestors

public static int countBeansIncludingAncestors(ListableBeanFactory lbf)
Count all bean definitions in any hierarchy in which this factory participates. Includes counts of ancestor bean factories. Beans that are "overridden" (specified in a descendant factory with the same name) are counted only once.
Parameters:
lbf
Returns: int count of beans including those defined in ancestor factories