ClassPathXmlApplicationContext and FileSystemXmlApplicationContext


 

ClassPathXmlApplicationContext and FileSystemXmlApplicationContext

In this section we will discuss about the ClassPathXmlApplicationContext and FileSystemXmlApplicationContext

In this section we will discuss about the ClassPathXmlApplicationContext and FileSystemXmlApplicationContext

ClassPathXmlApplicationContext and FileSystemXmlApplicationContext

Spring provides various ApplicationContext implementations to load spring configuration file. Here is some most commonly used classes.

1. ClassPathXmlApplicationContext : It loads context information from an XML file which is present in classpath.

The sample code for loading context information from classpath:

ApplicationContext classpathCtx = new ClassPathXmlApplicationContext("helloWorld.xml");
HelloWorld helloBean = (HelloWorld) classpathCtx.getBean("helloWorld");

2. FileSystemXmlApplicationContext : It loads context information from an XML file which is present in the file system.

FileSystemXmlApplicationContext fileCtx = new FileSystemXmlApplicationContext("C:\\helloWorldFile.xml");
HelloWorld helloBean = (HelloWorld) fileCtx.getBean("helloWorld");

An example:

Application directory structure: The application has directory structure like picture beloew where lib folder contains all jar files required for spring and net/roseindia folder contains our application class files HellowWorld and HelloWorldMain.

HellowWorld.java

package net.roseindia;

public class HelloWorld {
public void sayHello(){
System.out.println("Hi........");
}
}

 

helloWorld.xml:

Declare the above class as bean in spring context file as below:

<?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:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<bean id="helloWorld" class="net.roseindia.HelloWorld" />

</beans>

 

HelloWorldMain.java:

This class demonstrates loading the application context file which is present in classpath ( C:\Spring3\helloWorld.xml) and loading if you have the context file in some place in file system (C:\helloWorldFile.xml).

package net.roseindia;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class HelloWorldMain {

public static void main(String[] args) {

HelloWorld helloBean = null;

ApplicationContext classpathCtx = new ClassPathXmlApplicationContext("helloWorld.xml");
helloBean = (HelloWorld) classpathCtx.getBean("helloWorld");
helloBean.sayHello();

FileSystemXmlApplicationContext fileCtx = new FileSystemXmlApplicationContext("C:\\helloWorldFile.xml");
helloBean = (HelloWorld) fileCtx.getBean("helloWorld");
helloBean.sayHello();
}
}

 

Output:

Set the classpath, compile the java files and run the HelloWorldMain.class file. You will see the output as below:


C:\Spring3>set classpath=%classpath%;C:\Spring3\lib\*;

C:\Spring3>javac C:\Spring3\net\roseindia\*.java

C:\Spring3>java net.roseindia.HelloWorldMain
Apr 1, 2011 5:53:59 PM org.springframework.context.support.AbstractApplicationCo
ntext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationCont
ext@4413ee: startup date [Fri Apr 01 17:53:59 GMT+05:30 2011]; root of context h
ierarchy
Apr 1, 2011 5:53:59 PM org.springframework.beans.factory.xml.XmlBeanDefinitionRe
ader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [helloWorld.xml]
Apr 1, 2011 5:53:59 PM org.springframework.beans.factory.support.DefaultListable
BeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.
DefaultListableBeanFactory@13d28e3: defining beans [helloWorld]; root of factory
hierarchy
Hi........
Apr 1, 2011 5:53:59 PM org.springframework.context.support.AbstractApplicationCo
ntext prepareRefresh
INFO: Refreshing org.springframework.context.support.FileSystemXmlApplicationCon
text@32784a: startup date [Fri Apr 01 17:53:59 GMT+05:30 2011]; root of context
hierarchy
Apr 1, 2011 5:53:59 PM org.springframework.beans.factory.xml.XmlBeanDefinitionRe
ader loadBeanDefinitions
INFO: Loading XML bean definitions from file [C:\helloWorldFile.xml]
Apr 1, 2011 5:54:00 PM org.springframework.beans.factory.support.DefaultListable
BeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.
DefaultListableBeanFactory@feb48: defining beans [helloWorld]; root of factory h
ierarchy
Hi........

C:\Spring3>

Ads