Spring學習之路——單例模式和多例模式
阿新 • • 發佈:2019-02-19
在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,均建立一個新例項。