spring配置文件中bean中scope属性prototype和singleton

Person

public class Person {
	private int i = 0;

	public void add(){
		System.out.println("i=" + i++);
	}
}

applicationContext.xml



							
	
	


测试类

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

你可能感兴趣的:(Spring)