This chapter covers the Spring Framework's implementation of the Inversion of Control (IoC) [1] principle.
The org.springframework.beans
and
org.springframework.context
packages provide the basis
for the Spring Framework's IoC container. The BeanFactory
interface provides an advanced configuration mechanism capable of managing
objects of any nature. The ApplicationContext
interface builds on top of the BeanFactory
(it is a sub-interface) and adds other functionality such as easier
integration with Spring's AOP features, message resource handling (for use
in internationalization), event propagation, and application-layer
specific contexts such as the
WebApplicationContext
for use in web
applications.
In short, the BeanFactory
provides
the configuration framework and basic functionality, while the
ApplicationContext
adds more
enterprise-centric functionality to it. The
ApplicationContext
is a complete superset
of the BeanFactory
, and any description of
BeanFactory
capabilities and behavior is to
be considered to apply to the
ApplicationContext
as well.
This chapter is divided into two parts, with the first part covering the basic principles
that apply to both the BeanFactory
and
ApplicationContext
, and with the second part covering those features
that apply only to the ApplicationContext
interface.