1. 程式人生 > 其它 >三種XML例項化Bean的配置方式

三種XML例項化Bean的配置方式

基於構造方法例項化物件

<bean id="apple2" class="com.example.s02.ioc.entity.Apple">
        <constructor-arg name="title" value="紅富士"></constructor-arg>
        <constructor-arg name="color" value="紅色"></constructor-arg>
        <constructor-arg name="origin" value="歐洲"></constructor-arg
> <constructor-arg name="price" value="18.5"></constructor-arg> </bean> <bean id="apple3" class="com.example.s02.ioc.entity.Apple"> <constructor-arg index="0" value="紅富士"></constructor-arg> <constructor-arg index="1" value="紅色"></
constructor-arg> <constructor-arg index="2" value="歐洲"></constructor-arg> <constructor-arg index="3" value="18.5"></constructor-arg> </bean>

 

public class Apple {
    private String title;
    private String color;
    private String origin;
    private
Float price; public Apple() { System.out.println("Apple物件已建立," + this); } public Apple(String title, String color, String origin) { System.out.println("通過帶參構造方法建立物件" + this); this.title = title; this.color = color; this.origin = origin; } public Apple(String title, String color, String origin,Float price) { System.out.println("通過帶參構造方法建立物件" + this); this.title = title; this.color = color; this.origin = origin; this.price = price; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getOrigin() { return origin; } public void setOrigin(String origin) { this.origin = origin; } }

2.利用靜態工廠獲取物件

    <!--利用靜態工廠獲取物件-->
    <bean id="apple4" class="com.example.s02.ioc.Factory.AppleStaticFactory"
          factory-method="createSweetApple"/>

 

package com.example.s02.ioc.Factory;

import com.example.s02.ioc.entity.Apple;

/**
 * 靜態工廠通過靜態方法建立物件,隱藏建立物件的細節
 */
public class AppleStaticFactory {
    public static Apple createSweetApple() {
        //logger.info("");
        Apple apple = new Apple();
        apple.setTitle("紅富士");
        apple.setOrigin("歐洲");
        apple.setColor("紅色");
        return apple;
    }
}

3.基於工廠例項方法例項化物件

    <!--利用工廠例項方法獲取物件-->
    <bean id="factoryInstance" class="com.example.s02.ioc.Factory.AppleFactoryInstance"/>
    <bean id="apple5" factory-bean="factoryInstance" factory-method="createSweetApple"/>
package com.example.s02.ioc.Factory;

import com.example.s02.ioc.entity.Apple;

/**
 * 工廠例項方法建立物件是指IoC容器對工廠類進行例項化並呼叫對應的方法建立物件的過程
 */
public class AppleFactoryInstance {
    public Apple createSweetApple(){
        Apple apple = new Apple();
        apple.setTitle("紅富士");
        apple.setOrigin("歐洲");
        apple.setColor("紅色");
        return apple;
    }
}