# Package org.springframework.beans.factory

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

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Aware | Marker superinterface indicating that a bean is eligible to be notified by the Spring container of a particular framework object through a callback-style method.
  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
  Class | Description
  --- | ---
  BeanFactoryUtils | Convenience methods operating on bean factories, in particular on the `ListableBeanFactory` interface.

- Exception Summary
  Exception | Description
  --- | ---
  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 for which it cannot find a definition.
  NoUniqueBeanDefinitionException | Exception thrown when a `BeanFactory` is asked for a bean instance for which multiple matching candidates have been found when only one matching bean was expected.
  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).