版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38409944/article/details/82668277
Bean作用域:
默认属性scope="singleton"
表示容器初始化创建这一个Bean 单例的
Hello person1 = (Hello) applicationContext.getBean("helloSet1");
Hello person2 = (Hello) applicationContext.getBean("helloSet1");
System.out.println(person1==person2);
输出:
true
修改:scope=”prototype”
每次从IOC容器中获取的对象都是重新创造的一个对象
输出:false
*
验证:singleton属性使得容器初始化时创建bean对象
对象类添加无参的构造函数:
public Hello() {
System.out.println("初始化一个对象");
}
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
直接输出:
初始化一个对象
总结:
表示容器初始化的时候的同时创建Bean对象,
当下次获取对象的时候直接返回一开始创建的那个对象
而scope=”prototype” 容器初始化的时候没有创建对象,
只有当从容器中获取Bean的时候会创建一个新的Bean实例对象
调用几次就创建几个新的对象