"
application-context" in spring means nothing but it is core component of spring container in spring framework. Ideally we can say "application-context" one of the Spring Container in Spring Framework and other container is "bean-factory". The configuration for "application-context" is loaded by the one of concrete implementation of
ApplicationContext interface.
The
ApplicationContext is the central interface within a Spring Application for providing configuration information to the application. It is read-only at run time , but can be reloaded if necessary and supported by the application.
Major Responsibilities of "application-context" container
- It provides bean factory methods for accessing application components.
- It provides the ability to load file resources in a generic fashion.
- It provides the ability to publish event to register listeners
- It provide the ability to resolve to support internationalization.
Creating one "application-context"
- AnnotationConfigApplicationContext. Loads a Spring application context from one or moro Java-Based configuration classes.
ApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class;
- AnnotationConfigWebApplicationContext. Loads a Spring web application context from one or more Java-Based configuration classes.
ApplicationContext context = new AnnotationConfigWebApplicationContext(JavaWebConfig.class;
- ClassPathXMLApplicationContext. Loads a context definition from one or more XML files located in the classpath
ApplicationContext context = new ClassPathXMLApplicationContext("spingConfig.xml");
- FileSystemXMLApplicationContext. Loads a context definition from one or more XML files located in the filesystem.
ApplicationContext context = new FileSystemXMLApplicationContext("c:/spingConfig.xml");
- XMLWebApplicationContext. Loads a context definition from one or more XML files contained in the web application.
ApplicationContext context = new XMLWebApplicationContext("/WEB-INF/config/spingConfig.xml");
Accessing Application Context in the other classes:
You could also access the "application-context" container into other classes. You can implement ApplicationContextAware as in the following example:
public class AnotherClass implements ApplicationContextAware {
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}