002.初始话Ioc容器——基于构造方法实例化对象(Bean)

1.三种XML实例化Bean的配置方式

    1.基于构造方法实例化对象
    2.基于静态工厂实例化对象
    3.基于工厂实例方法实例化对象

2.详细讲解

   2.1  基于构造方法实例化对象

               2.1.1   基于构造方法实例化对象,bean标签默认通过构造方法构造对象,默认使用无参构造

 <!--bean标签默认通过构造方法构造对象-->
    <bean id="apple1" class="com.imooc.spring.ioc.entity.Apple">

    </bean>

              2.1.2 基于构造方法实例化对象,使用带参构造实例化对象,根据参数位置实例化对象

 <!--使用带参构造实例化对象-->
    <bean id="apple2" class="com.imooc.spring.ioc.entity.Apple">
        <constructor-arg name="title" value="红富士"/>
        <constructor-arg name="color" value="红色"/>
        <constructor-arg name="origin" value="欧洲"/>
        <constructor-arg name="price" value="11.98"/>
    </bean>

    <!--根据参数的位置实例化对象-->
    <bean id="apple3" class="com.imooc.spring.ioc.entity.Apple">
        <constructor-arg index="0" value="红富士"/>
        <constructor-arg index="1" value="红色"/>
        <constructor-arg index="2" value="欧洲"/>
        <constructor-arg index="3" value="11.98"/>
    </bean>

   2.2 基于静态工厂实例化对象

/**
 * 静态工厂通过静态方法创建对象,隐藏对象细节
 */
public class AppleStaticFactory
{
    public static Apple createSweetApple()
    {
        Apple apple = new Apple();
        apple.setTitle("红富士");
        apple.setOrigin("欧洲");
        apple.setColor("红色");
        return apple;
    }
}
 <!--利用静态工厂获取对象-->
    <bean id="apple4" class="com.imooc.spring.ioc.factory.AppleStaticFactory" factory-method="createSweetApple"/>

  2.2 基于工厂实例化对象

/**
 * 工厂实例方法创建对象是指Ioc容器对工厂类进行实例化并调用对应的实例方法创建对象的过程
 */
public class AppleFactoryInstance
{
    public Apple createSweetApple()
    {
        Apple apple = new Apple();
        apple.setTitle("红富士");
        apple.setOrigin("欧洲");
        apple.setColor("红色");
        return apple;
    }
}
   <!--利用工厂实例化方法获取对象-->
    <bean id="factoryInstance" class="com.imooc.spring.ioc.factory.AppleFactoryInstance"/>
    <bean id="apple5" factory-bean="factoryInstance" factory-method="createSweetApple"/>

 

 

               

posted @ 2023-02-16 19:34  李林林  阅读(15)  评论(0编辑  收藏  举报