hualinux spring 3.9:bean的作用域

目錄

一、知識點

二、默認情況

2.1 創建XML

2.2 相關代碼

三、prototype

四、 singleton

五、總結 


 前章講了繼承和依賴,本章將講bean的作用域

 

一、知識點

bean 的作用域:singletonprototypeWEB 環境作用域

以下直接通過例子說明 

二、默認情況

2.1 創建XML

src右擊-->new-->XML Configuration File-->Spring config-->輸入名字“beans-scope” 


    <bean id="car" class="com.hualinux.beans.autowire.Car">
        <property name="brand" value="寶馬x7"/>
        <property name="price" value="1500000"/>
    </bean>

2.2 相關代碼

src-->com.hualinux.beans.scope.Main.java

package com.hualinux.beans.scope;

import com.hualinux.beans.autowire.Car;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {
    public static void main(String[] args) {
        ApplicationContext ctx=new ClassPathXmlApplicationContext("beans-scope.xml");
        Car car= (Car) ctx.getBean("car");
        Car car2= (Car) ctx.getBean("car");

        System.out.println(car==car2);
    }

}

運行結果:

結果:true

 

三、prototype

作用域是原型的

修改上面的beans-scope.xml,如下

    <bean id="car" class="com.hualinux.beans.autowire.Car" scope="prototype">
        <property name="brand" value="寶馬x7"/>
        <property name="price" value="1500000"/>
    </bean>


<!--
    <bean id="car" class="com.hualinux.beans.autowire.Car">
        <property name="brand" value="寶馬x7"/>
        <property name="price" value="1500000"/>
    </bean>
-->

運行com.hualinux.beans.scope.Main.java,結果

false

 

四、 singleton

修改上面的beans-scope.xml,如下

    <bean id="car" class="com.hualinux.beans.autowire.Car" scope="singleton">
        <property name="brand" value="寶馬x7"/>
        <property name="price" value="1500000"/>
    </bean>

運行com.hualinux.beans.scope.Main.java,結果

true

 

五、總結 

    使用bean的scope屬性來配置bean的作用域

    singleton:默認值。容器初始時創建bean實例。在整個容器生命週期內只創建一個bean單實例

    prototype:原型的,容器初始化時不創建bean的實例,而是每次請求時都創建一個新的Bean實例,並返回。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章