ApplicationContext is an interface and it's provides configuration information to an application. Here multiple classes are provided by springframework that implements this interface and helps us to use configuration information in applications. ApplicationContext provides standard beanfactory lifecycle capabilities. Important capability which we will be using in below code is, class implementing ApplicationContext and it should be scan for ApplicationContextAware beans and invoke setApplicationContext by passing an implementation of its instance.
Create project in your eclipse and follow the below steps
Step: 1 Create spring-context.xml and put below code.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="applicationContextUtils" class="com.findnerd.spring.ApplicationContextUtils"></bean>
<bean id="helloWorld" class="com.findnerd.spring.HelloWorld" />
<bean id="strHelloWorld" class="java.lang.String">
<constructor-arg value="Hello World" />
</bean>
</beans>
Step: 2 Create ApplicationContextUtils.java
Create the following utility class, it implements ApplicationContextAware and provides the setApplicationContext which will be invoked by spring container and the applicationContext will be passed by it. We store it in a static variable and expose it through a get method so that it can be accessed all through the application.
package com.findnerd.spring;
/** * Developer : Bhagwan Singh */
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class ApplicationContextUtils implements ApplicationContextAware {
private static ApplicationContext ctx;
@Override
public void setApplicationContext(ApplicationContext appContext)
throws BeansException {
ctx = appContext;
}
public static ApplicationContext getApplicationContext() {
return ctx;
}
}
Step: 3 Create HelloWorld.java
This is a java bean which use our utility method to get access to the ApplicationContext.
package com.findnerd.spring;
/** * Developer : Bhagwan Singh */
import org.springframework.context.ApplicationContext;
public class HelloWorld {
public String getValueFromContext(String beanName) {
ApplicationContext appCtx = ApplicationContextUtils
.getApplicationContext();
String strFromContext = (String) appCtx.getBean(beanName);
return strFromContext;
}
}
Step: 4 Create TestAppContext.java
package com.findnerd.spring;
/** * Developer : Bhagwan Singh */
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestAppContext {
public static void main(String[] args) {
ApplicationContext appContext = new ClassPathXmlApplicationContext(
"META-INF/spring-context.xml");
HelloWorld hw = (HelloWorld) appContext.getBean("helloWorld");
String output = hw.getValueFromContext("strHelloWorld");
System.out.print(output);
}
}
0 Comment(s)