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