Person
public class Person {
private int i = 0;
public void add(){
System.out.println("i=" + i++);
}
}
applicationContext.xml
<?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-2.5.xsd">
<!-- scope默认是 prototype:getBean()一次创建一个实例-->
<bean id="person" class="com.xxc.scope.domain.Person" scope="singleton"></bean>
</beans>
测试类
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("com/xxc/scope/applicationContext.xml");
Person p1 = (Person)ac.getBean("person");
p1.add();
Person p2 = (Person)ac.getBean("person");
p2.add();
Person p3 = (Person)ac.getBean("person");
p3.add();
}
}
scope默认是singleton
如果scope是singleton表示单例模式,那么无论getBean多少次,都是同一个对象。
所以最后的打印结果是
i=0
i=1
i=2
如果scope是prototype表示是getBean一次就实例化一次对象。
所以最后的打印结果是
i=0
i=1
i=2