Spring IoC Containers:-
The Spring container is at the core of the Spring Framework. The container will
create the objects, wire them together, configure them, and manage their
complete lifecycle from creation till destruction. The Spring container uses
dependency injection (DI) to manage the components that make up an application.
These objects are called Spring Beans.
The Spring container gets its instructions on what objects to instantiate,
configure, and assemble by reading configuration metadata provided. The
configuration metadata can be represented either by XML, Java annotations, or
Java code.
The main tasks performed by IoC container are as foolows-
1 Instantiate the application class
2 Configure the object
3 Assemble the dependencies between the objects
There are two types of IoC containers. They are as follows-
1 Spring BeanFactory:-This is the simplest container providing basic
support for DI and defined by the org.springframework.beans.factory.BeanFactory
interface. The BeanFactory and related interfaces, such as BeanFactoryAware,
InitializingBean, DisposableBean, are still present in Spring for the purposes
of backward compatibility with the large number of third-party frameworks that
integrate with Spring.
In BeanFactory-
The XmlBeanFactory is the implementation class for the BeanFactory interface. To
use the BeanFactory, we need to create the instance of XmlBeanFactory class as
given below:
Resource resource=new
ClassPathResource("applicationContext.xml");
BeanFactory factory=new XmlBeanFactory(resource);
2 Spring ApplicationContext:-This container adds more
enterprise-specific functionality such as the ability to resolve textual
messages from a properties file and the ability to publish application events to
interested event listeners. This container is defined by the
org.springframework.context.ApplicationContext interface.
The ApplicationContext container includes all functionality of the BeanFactory
container, so it is generally recommended over the BeanFactory.
In ApplicationContext-
The ClassPathXmlApplicationContext class is the implementation class of
ApplicationContext interface. We need to instantiate the
ClassPathXmlApplicationContext class to use the ApplicationContext as given
below:
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");