基本用法
建乙個測試的bean如下:
public
class
mytestbean
public
void
setteststr(string teststr)
public
void
test()
}
beans.xml檔案如下:
<?xml version="1.0" encoding="utf-8" ?>
xmlns=""
xmlns:xsi=""
xsi:schemalocation="
/spring-beans-4.0.xsd">
id="mytestbean"
class="com.season.mytestbean">
name="teststr"
value="hello world"/>
bean>
beans>
**結構如下
測試**如下:執行後會看到輸出」hello world」
@test
public
void
test******load()
beanfactory介面位於類結構樹的頂端,我們經常用到的就是getbean方法,來從spring容器中獲得想要的物件。
beannameaware,initializingbean,beanfactoryaware等
讓mytestbean實現一些介面
public
class
mytestbean
implements
beannameaware,initializingbean,beanfactoryaware
@override
public
void
afterpropertiesset() throws exception
@override
public
void
setbeanfactory(beanfactory beanfactory) throws bean***ception
}
輸出如下:
mytestbean - setbeanname... beanname: mytestbean
mytestbean - setbeanfactory... beanfactory:org.springframework.beans.factory.support.defaultlistablebeanfactory@1213b92: defining beans [mytestbean]; root of factory hierarchy
mytestbean - afterpropertiesset...
hello world
beanfactorypostprocessor用法建乙個類實現beanfactorypostprocessor介面
public
class
mybeanfactorypostprocessor
implements
beanfactorypostprocessor }}
}
在beans.xml中加上改bean
class="com.season.mybeanfactorypostprocessor"/>
執行輸出結果如下:
mybeanfactorypostprocessor - postprocessbeanfactory...
mytestbean - setbeanname... beanname: mytestbean
mytestbean - setbeanfactory... beanfactory:org.springframework.beans.factory.support.defaultlistablebeanfactory@127bd23: defining beans [mytestbean,com.season.mybeanfactorypostprocessor#0]; root of factory hierarchy
mytestbean - afterpropertiesset...
mybeanfactorypostprocessor改變了屬性
beanpostprocessor用法建乙個類實現beanpostprocessor介面
public
class
mybeanpostprocessor
implements
beanpostprocessor
@override
public object postprocessafterinitialization(object o, string s) throws bean***ception
}
在beans.xml中加上改bean
class="com.season.mybeanpostprocessor"/>
輸出結果如下:
mybeanfactorypostprocessor - postprocessbeanfactory...
mytestbean - setbeanname... beanname: mytestbean
mytestbean - setbeanfactory... beanfactory:org.springframework.beans.factory.support.defaultlistablebeanfactory@127bd23: defining beans [mytestbean,com.season.mybeanpostprocessor#0,com.season.mybeanfactorypostprocessor#0]; root of factory hierarchy
mybeanpostprocessor - postprocessbeforeinitialization...bean: com.season.mytestbean@153b3e6 beanname: mytestbean
mytestbean - afterpropertiesset...
mybeanpostprocessor - postprocessafterinitialization...
mybeanfactorypostprocessor改變了屬性
下篇文章開始分析原始碼,對上面的輸出結果進行**。 Spring IOC實現原理
ioc 控制反轉,通俗來說就是把物件的建立不是通過new的方式實現,而是交給spring配置檔案來建立類的物件。開發思想 高內聚,低耦合 ioc實現原理 需求 實現在userservlet中來得到userservice類的物件 第一步 建立xml配置檔案,配置要建立的物件類userservice 第...
SpringIOC實現原理
假設我們設計一輛汽車 先設計輪子,然後根據輪子大小設計底盤,接著根據底盤設計車身,最後根據車身設計好整個汽車。這裡就出現了乙個 依賴 關係 汽車依賴車身,車身依賴底盤,底盤依賴輪子。這樣的設計看起來沒問題,但是可維護性卻很低。假設設計完工之後,上司卻突然說根據市場需求的變動,要我們把車子的輪子設計都...
面試 spring ioc實現原理
首先載入乙個spring的容器beanfactory,beanfactory的構造方法會建立乙個實現了resource介面例項物件。resource物件通過setconfiguration 方法設定spring配置檔案位置。resource物件有三種實現 分別是fileresource,url re...