Spring – Core Container | Code Factory


Donate : Link

Medium Blog : Link

Applications : Link

This image has an empty alt attribute; its file name is image-1.png

Spring Tutorial Index Page: Link

Create Java Project

  • Open Eclipse
  • Go to File -> New -> Other… -> Java Project
  • Create IOC-CoreTest project
  • Right click on project -> Build Path -> Configure Build Path -> Libraries tab -> Add External JARs
    • commons-logging-X.X.jar
    • spring-beans-X.X.X.jar
    • spring-context-X.X.X.jar
    • spring-core-X.X.X.jar
  • * You can find dtd information from spring-beans-X.X.X.jar -> org -> springframework -> beans -> factory -> xml -> spring-beans.dtd (line no 36 & 37)

spring.xml

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
	"http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
	<bean id="t" class="com.codeFactory.beans.Test">
	</bean>
</beans>

Test.java

package com.codeFactory.beans;

/**
 * @author code.factory
 *
 */
public class Test {
	
	public Test() {
		System.out.println("Test.Test()");
	}

}

Client.java

package com.codeFactory.test;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

/**
 * @author code.factory
 *
 */
public class Client {
	public static void main(String... args) {
		/* find xml */
		Resource r = new ClassPathResource("com/codeFactory/resources/spring.xml");
		
		/* load xml into container */
		BeanFactory factory = new XmlBeanFactory(r);
		
		/* create test class object */
		Object o1 = factory.getBean("t");
		Object o2 = factory.getBean("t");
		Object o3 = factory.getBean("t");
		
		System.out.println(o1 == o2);
		System.out.println(o1 == o3);
	}
}

Output:

Dec 11, 2020 2:09:26 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [com/codeFactory/resources/spring.xml]
Test.Test()
true
true
  • In spring.xml if you open any tag and does not close it then you get parser exception. Example: open <bean> tag and don’t close it, now run Client.java
    • In console you can see org.xml.sax.SAXParseException exception
  • If you define any unformed tag then also you get parser exception. Example: lets define <codefactory></codefactory>, now run Client.java
    • You can open and close tag then still you will get org.xml.sax.SAXParseException exception because it is not defined in dtd file.
  • We not define any scope in bean spring.xml so it will create only single instance. BeanFactory will create instance on first request.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s