1. 程式人生 > >Spring -10 -<bean>的 scope 屬性 -

Spring -10 -<bean>的 scope 屬性 -

1.<bean>的屬性;

2.作用:控制物件有效範圍(單例,多例等)
3.<bean/>標籤對應的物件預設是單例的.
  3.1無論獲取多少次,都是同一個物件
 

Teacher t1 = ac.getBean("teacher1",Teacher.class);
System.out.println(t1);

Teacher t2 = ac.getBean("teacher1",Teacher.class);
System.out.println(t2);

System.out.println(t1==t2);
3.3輸出結果如下: 3[email protected]
3[email protected] 3.6true

 

3.7
4.scope 可取值
4.1singleton 預設值,單例--所有同一物件使用同一地址!

<bean id="teacher1" class="com.test.Teacher" scope="singleton"></bean> 
等價於下面的:
<bean id="teacher1" class="com.test.Teacher" ></bean>

 

4.4prototype 多例,每次獲取重新例項化該Class !

<bean id="teacher1" class="com.test.Teacher" scope="prototype"></bean>

Teacher t1 = ac.getBean("teacher1",Teacher.class);
t1.setCnt(2);
System.out.println(t1); //Teacher{cnt=2}

Teacher t2 = ac.getBean("teacher1",Teacher.class);
System.out.println(t2); //Teacher{cnt=2}

System.out.println(t1==t2);

輸出結果: Teacher{cnt=2} ,Teacher{cnt=0} , false

 

4.8  request 在每次請求時,重新new() / 例項化;
4.9  session 每個會話物件內,物件是單例的. (依賴於Spring0MVC架構)
4.10  application 在application 物件內是單例;
4.11   global session, spring 推 出 的 一 個 對 象 , 依 賴 於 spring-webmvc-portlet ,類似於session