Spring学习之路——单例模式和多例模式


在Spring中,bean可以被定义为两种模式:prototype(多例)和singleton(单例)

singleton(单例):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例。

prototype(多例):对这个bean的每次请求都会创建一个新的bean实例,类似于new。

Spring bean 默认是单例模式。

实战演示:

代码详见上一篇文章中的代码。

在配置文件中,修改这句代码为:

1 <bean id="hi" class="com.test.Hi" init-method="init" scope="singleton">

在测试类中,修改代码为:

1 ApplicationContext context = new FileSystemXmlApplicationContext("applicationContext.xml");
2         Hi hi1 = (Hi) context.getBean("hi");
3         Hi hi2 = (Hi) context.getBean("hi");
4         System.out.println(hi1);
5         System.out.println(hi2);

结果为:

结论:二个变量指向一个对象。

将配置文件改为:

<bean id="hi" class="com.test.Hi" init-method="init" scope="prototype">

其他的不变,运行测试类,结果为:

结论:每次访问bean,均创建一个新实例。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM