## Package org.springframework.beans.factory

The core package implementing Spring's lightweight Inversion of Control (IoC) container.

See:
Description

Interface Summary
BeanClassLoaderAware: Callback that allows a bean to be aware of the bean `class loader`; that is, the class loader used by the present bean factory to load bean classes.
BeanFactory: The root interface for accessing a Spring bean container.
BeanFactoryAware: Interface to be implemented by beans that wish to be aware of their owning `BeanFactory`.
BeanNameAware: Interface to be implemented by beans that want to be aware of their bean name in a bean factory.
DisposableBean: Interface to be implemented by beans that want to release resources on destruction.
FactoryBean<T>: Interface to be implemented by objects used within a `BeanFactory` which are themselves factories.
HierarchicalBeanFactory: Sub-interface implemented by bean factories that can be part of a hierarchy.
InitializingBean: Interface to be implemented by beans that need to react once all their properties have been set by a BeanFactory: for example, to perform custom initialization, or merely to check that all mandatory properties have been set.
ListableBeanFactory: Extension of the `BeanFactory` interface to be implemented by bean factories that can enumerate all their bean instances, rather than attempting bean lookup by name one by one as requested by clients.
NamedBean: Counterpart of BeanNameAware.
ObjectFactory<T>: Defines a factory which can return an Object instance (possibly shared or independent) when invoked.
SmartFactoryBean<T>: Extension of the `FactoryBean` interface.

Class Summary
BeanFactoryUtils: Convenience methods operating on bean factories, in particular on the `ListableBeanFactory` interface.

Exception Summary
BeanCreationException: Exception thrown when a BeanFactory encounters an error when attempting to create a bean from a bean definition.
BeanCreationNotAllowedException: Exception thrown in case of a bean being requested despite bean creation currently not being allowed (for example, during the shutdown phase of a bean factory).
BeanCurrentlyInCreationException: Exception thrown in case of a reference to a bean that's currently in creation.
BeanDefinitionStoreException: Exception thrown when a BeanFactory encounters an invalid bean definition: e.g.
BeanExpressionException: Exception that indicates an expression evaluation attempt having failed.
BeanInitializationException: Exception that a bean implementation is suggested to throw if its own factory-aware initialization code fails.
BeanIsAbstractException: Exception thrown when a bean instance has been requested for a bean definition which has been marked as abstract.
BeanIsNotAFactoryException: Exception thrown when a bean is not a factory, but a user tries to get at the factory for the given bean name.
BeanNotOfRequiredTypeException: Thrown when a bean doesn't match the expected type.
CannotLoadBeanClassException: Exception thrown when the BeanFactory cannot load the specified class of a given bean.
FactoryBeanNotInitializedException: Exception to be thrown from a FactoryBean's `getObject()` method if the bean is not fully initialized yet, for example because it is involved in a circular reference.
NoSuchBeanDefinitionException: Exception thrown when a BeanFactory is asked for a bean instance name for which it cannot find a definition.
UnsatisfiedDependencyException: Exception thrown when a bean depends on other beans or simple properties that were not specified in the bean factory definition, although dependency checking was enabled.

## Package org.springframework.beans.factory Description

The core package implementing Spring's lightweight Inversion of Control (IoC) container.

Provides an alternative to the Singleton and Prototype design patterns, including a consistent approach to configuration management. Builds on the org.springframework.beans package.

This package and related packages are discussed in Chapter 11 of Expert One-On-One J2EE Design and Development by Rod Johnson (Wrox, 2002).