spring入門--bean的三種創(chuàng)建方式

[ * ] 靜態(tài)工程方法創(chuàng)建bean

[ * ] 實(shí)例工程方法創(chuàng)建bean

[ * ] spring的FactoryBean創(chuàng)建bean

靜態(tài)工程方法創(chuàng)建bean

直接用類的靜態(tài)方法就可以返回bean的實(shí)例

 public class StaticCarFactory {
   private static Map<String, Car> cars = new HashMap<String, Car>();

   static {
       cars.put("audi", new Car("audi", 20000));
       cars.put("ford", new Car("ford", 40000));
   }

   public static Car getCar(String name) {
       return cars.get(name);
   }
}
 <!-- 通過靜態(tài)工程方法配置bean
    注意:不是配置靜態(tài)工程方法實(shí)例,而是配置bean實(shí)例

         class 屬性:指向靜態(tài)工程方法全類名稱
     factory-method: 指向靜態(tài)工程方法
    constructor-arg:如果靜態(tài)工程方法需要傳入?yún)?shù)凤薛,這個(gè)使用constructor-arg: 配置參數(shù)

    -->
<bean id="car1"
          class="com.sunny.beans.factory.StaticCarFactory"
          factory-method="getCar">
        <constructor-arg name="name" value="audi"/>
    </bean>

靜態(tài)工程方法創(chuàng)建bean

先創(chuàng)建工程本身声功,在調(diào)用工程的實(shí)例方法

public class InstanceCarFactory {
    private static Map<String, Car> cars;

    public InstanceCarFactory() {
        cars = new HashMap<String, Car>();

        cars.put("audi", new Car("audi", 20000));
        cars.put("ford", new Car("ford", 40000));
    }

    public Car getCar(String name) {
        return cars.get(name);
    }
}
    <!--通過實(shí)例的工程方法創(chuàng)建bean-->
    <!--配置工程實(shí)例-->
    <bean id="carFactory"
          class="com.sunny.beans.factory.InstanceCarFactory"/>

    <bean id="car2"
          factory-bean="carFactory"
          factory-method="getCar">
        <constructor-arg name="name" value="ford"/>
    </bean>

spring的FactoryBean創(chuàng)建bean

實(shí)現(xiàn)FactoryBean接口

public class CarFactoryBean implements FactoryBean<Car> {
    private String brand;

    public void setBrand(String brand) {
        this.brand = brand;
    }

    /**
     * @return bean對象
     * @throws Exception 異常
     */
    @Override
    public Car getObject() throws Exception {
        return new Car(brand, 40000);
    }

    /**
     * @return bean的類型
     */
    @Override
    public Class<?> getObjectType() {
        return Car.class;
    }

    /**
     * @return 是否單例
     */
    @Override
    public boolean isSingleton() {
        return true;
    }
}

    <bean id="car3"
          class="com.sunny.beans.factory.CarFactoryBean">
       <property name="brand" value="CarFactoryBean"/>
    </bean>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末键袱,一起剝皮案震驚了整個(gè)濱河市科阎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌系瓢,老刑警劉巖召廷,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異雾叭,居然都是意外死亡悟耘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門织狐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暂幼,“玉大人,你說我怎么就攤上這事移迫⊥遥” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵厨埋,是天一觀的道長邪媳。 經(jīng)常有香客問我,道長荡陷,這世上最難降的妖魔是什么雨效? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮废赞,結(jié)果婚禮上徽龟,老公的妹妹穿的比我還像新娘。我一直安慰自己唉地,他們只是感情好据悔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耘沼,像睡著了一般极颓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上群嗤,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天菠隆,我揣著相機(jī)與錄音,去河邊找鬼。 笑死浸赫,一個(gè)胖子當(dāng)著我的面吹牛闰围,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播既峡,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼羡榴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了运敢?” 一聲冷哼從身側(cè)響起校仑,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎传惠,沒想到半個(gè)月后迄沫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卦方,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年羊瘩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盼砍。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尘吗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出浇坐,到底是詐尸還是另有隱情睬捶,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布近刘,位于F島的核電站擒贸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏觉渴。R本人自食惡果不足惜介劫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疆拘。 院中可真熱鬧蜕猫,春花似錦寂曹、人聲如沸哎迄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漱挚。三九已至,卻和暖如春渺氧,著一層夾襖步出監(jiān)牢的瞬間旨涝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工侣背, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留白华,地道東北人慨默。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像弧腥,于是被迫代替她去往敵國和親厦取。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容