实例:
package com.jd.vo;
public class UserInfo {
public UserInfo() {
System.out.println("构造方法!");
}
}
package com.jd.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
//创建IOC容器,并为Spring配置文件中配置的类创建对象
Object object = applicationContext.getBean("userInfo");
System.out.println(object);
object = applicationContext.getBean("userInfo");
System.out.println(object);
applicationContext.close();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="userInfo" class="com.jd.vo.UserInfo" lazy-init="true" scope="prototype"></bean>
</beans>
scope=“prototype”,那么打印出来的两个object不同,获取的对象不一样。
如果不写scpoe的话,那么打印出来的结果完全相同,表明获取的对象是一样的。
scope="singleton"表示默认模式。
还有,scope="session"和scope="request"的情况,用于Javaweb,分别表示,不同的session之间获取不同的对象,不同的请求之间获取不同的对象。