spring中bean細節

Bean的創建方式

第一種方式:使用默認構造函數創建

在spring的配置文件中使用bean標籤,配以id和class屬性之後,且沒有其他屬性和標籤時。
採用的就是默認構造函數創建bean對象,此時如果類中沒有默認構造函數,則對象無法創建。

<bean id="userDao" class="cn.td.dao.impl.UserDaoImpl"/>

第二種方式: 使用普通工廠中的方法創建對象

使用某個工廠類中的方法創建對象,並存入spring容器
factory-bean:工廠類bean的id factory-method:工廠類bean中創建對象的方法

<bean id="instanceFactory" class="cn.td.factory.InstanceFactory"/>
<bean id="userService" factory-bean="instanceFactory" factory-method="getUserService"/>

第三種方式:使用工廠中的靜態方法創建對象

factory-bean:工廠類bean的id factory-method:工廠類bean中創建對象的靜態方法

<bean id="userService" class="cn.td.factory.StaticInstanceFactory" factory-method="getUserService"/>

bean的作用範圍

bean標籤的scope屬性:用於指定bean的作用範圍
       取值: 常用的就是單例的和多例的
       singleton:單例的(默認值)
       prototype:多例的
       request:作用於web應用的請求範圍
       session:作用於web應用的會話範圍
       global-session:作用於集羣環境的會話範圍(全局會話範圍),當不是集羣環境時,它就是session

bean對象的生命週期

單例對象

       出生:當容器創建時對象出生
       活着:只要容器還在,對象一直活着
       死亡:容器銷燬,對象消亡
       總結:單例對象的生命週期和容器相同

多例對象

       出生:當我們使用對象時spring框架爲我們創建
       活着:對象只要是在使用過程中就一直活着。
       死亡:當對象長時間不用,且沒有別的對象引用時,由Java的垃圾回收器回收

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