【Bean】標簽常用屬性
- Id
說明:起名稱,id屬性值名稱任意,不能包含特殊符號,根據id得到配置對象。
- Class
說明:創建對象所在類的全路徑。
- Name
說明:功能和id是一樣的,id屬性值不能有特殊符號,但是name可以包含特殊符號。目前已經不再使用,使用也不會有什么問題(這是個遺留問題,主要是整合struts1來設置的)。
說明:Bean的作用范圍
singleton |
默認值、單例的(只創建一個對象) |
prototype |
多例的 |
request |
WEB項目中,Spring創建一個Bean對象,將對象存入到request域中 |
session |
WEB項目中,Spring創建一個Bean對象,將對象存入到session域中 |
globaSession |
WEB項目中,應用在Porlet(單點登錄)環境中,如果沒有Porlet環境,那么globalSession相當於session。 |
Singleton代碼演示:
1 //核心配置文件內容不變,因為默認就是singleton,再次基礎上代碼如下 2 //(如果要寫就是: scope="singleton"): 3 @Test 4 public void testUser(){ 5 //加載核心配置文件,創建對象 6 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 7 //得到我們配置的對象 8 //<bean id="user" class="com.tyzr.ioc.User"></bean> 9 User user1 = (User)context.getBean("user"); 10 User user2 = (User)context.getBean("user"); 11 System.out.println(user1); 12 System.out.println(user2); 13 }
輸出結果如下: com.tyzr.ioc.User@6f760238 com.tyzr.ioc.User@6f760238
Prototype(多例)代碼案例:
注意:我們在整合Struts2的時候,由於action是多實例的,這里這個就是要和struts2的action配合使用的(更簡單的說以后要用spring管理struts2 action的創建,就得是多實例的)。
1 <bean id="user" class="com.tyzr.ioc.User" scope="prototype"></bean> 2 @Test 3 public void testUser(){ 4 //加載核心配置文件,創建對象 5 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 6 //得到我們配置的對象 7 //<bean id="user" class="com.tyzr.ioc.User"></bean> 8 User user1 = (User)context.getBean("user"); 9 User user2 = (User)context.getBean("user"); 10 System.out.println(user1); 11 System.out.println(user2); 12 }
輸出結果如下:
com.tyzr.ioc.User@25e25cc
com.tyzr.ioc.User@7303754a