Spring — Core Container | Code Factory
2 min readJan 11, 2021
Donate : Link
WordPress Blog : Link
Applications… : Link
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.