Spring的Bean作用域 scope属性指定Bean是否为单例对象

版权声明:本文为博主原创文章,未经博主允许不得转载。 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实例对象
调用几次就创建几个新的对象

猜你喜欢

转载自blog.csdn.net/qq_38409944/article/details/82668277