bean 的作用域singleton和prototype的区别

先看代码:

PersonBean person=(PersonBean)context.getBean("personBean");
System.out.println(person.getName());
person.setName("linshi");        
System.out.println(person.getName());                
PersonBean newPerson=(PersonBean)context.getBean("personBean");
System.out.println(newPerson.getName());

 当XML文件的配置为:


               
               

PersonBean的作用域为默认singleton时,输出结果是:

zhanshan
linshi
linshi

将XML文件的配置更改为:

scope="prototype">
               
               

输出结果是:

zhanshan
linshi
zhanshan

 

当PersonBean的作用域为默认singleton时,因为容器里的PersonBean只实例化一次,就是说不管你取多少次,都是取到同一个对象
而将PersonBean的作用域设为prototype时,每次从容器里取时,都会取得一个新的对象. 

你可能感兴趣的:(spring)