Spring之bean定義

Spring以IoC、AOP爲主要思想,其中IoC,Inversion of Control 指控制反轉或反向控制。在Spring框架中我們通過配置創建類對象,由Spring在運行階段實例化、組裝對象。AOP,Aspect Oriented Programming,面向切面編程,其思想是在執行某些代碼前執行另外的代碼,使程序更靈活、擴展性更好,可以隨便地添加、刪除某些功能。Servlet中的Filter便是一種AOP思想的實現。

Bean標籤的常用屬性

(1)id屬性:用於指定配置對象的名稱,不能包含特殊符號。
(2)class屬性:創建對象所在類的全路徑。
(3)name屬性:功能同id屬性一致。但是在name屬性值中可以包含特殊符號。
(4)scope屬性
    singleton:默認值,單例
    單例模式下,在程序下只有一個實例。非單態模式下,每次請求該Bean,都會生成一個新的對象。
    prototype:多例
    request:創建對象後將對象存放到request域
    session:創建對象後將對象存放到session域
    globalSession:創建對象後將對象存放到globalSession域
init-method="init" 始化調用了init方法
destroy-method="destroy" 銷燬時調用了init方法

spring Bean的作用域:scope="singleton"(默認,單例,生成一個實例)
單例模式,默認在程序初始化的時候實例化(lazy-init=”false”)
spring Bean的作用域:scope="prototype"(多線程, 生成多個實例)
prototype:getBean的時候纔是實例化
lazy-init 只對單例模式起作用,對prototype不起作用(因爲prototype默認就不是程序初始化的時候實例化的)
<bean id="gardenerClient" class="com.minipay.gamesdk.standalone.service.GardenerClientService"  init-method="init" scope="singleton">
     <property name="mainBusinessId" value="3"/>
     <property name="gardenerConfigService" ref="gardenerConfigService"></property>
     </bean>
------------------------------------------------------------------------------
name是指GardenerClientService類中的參數,也既GardenerClientService類中有一個屬性名叫mainBusinessId的屬性,而value是爲這個屬性名爲mainBusinessId的指定值,把它當作參數傳進GardenerClientService中

name是指GardenerClientService類中的參數,也既GardenerClientService類中有一個GardenerConfigService類型名叫gardenerConfigService的對象,而ref是當前xml文件中叫做gardenerConfigService的這個bean,把它當作參數傳進GardenerConfigService中

--------------------------------------------------------------------------
ref屬性:查找當前配置文件裏的bean

ref標籤有3種屬性
<ref bean=""/>  :查找全局中的bean。即可以查找其他xml配置文件的bean,優先從當前配置文件尋找
<ref local=""/>   :查找當前配置文件中bean,等同於ref屬性。local屬性值必須同目標bean的id屬性值相同
<ref parent=""/>:指定其依賴的父JavaBean定義
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章