spring 之 使用IOC创建对象

1. 通过构造方法来创建对象

  • 通过参数名称设置
    <!-- 通过构造方法来创建对象 -->
        <bean id="u1" class="cn.wh.vo.User">
            <!-- 
                constructor-arg设置构造方法的参数
                name表示参数名称
                value表示参数值
             -->
            <constructor-arg name="name" value="张三疯"/>
            <constructor-arg name="age" value="218"/>
        </bean>
  • 通过参数的类型来设置
    <!-- 通过参数类型来设置 -->
        <bean id="u2" class="cn.wh.vo.User">
            <!-- 
                type表示参数类型
                value表示参数值
             -->
            <constructor-arg type="java.lang.String" value="张三疯"/>
            <constructor-arg type="int" value="218"/>
        </bean>
  • 通过参数的下标来设置
    <!-- 通过参数下标来设置 -->
        <bean id="u3" class="cn.wh.vo.User">
            <!-- 
                index表示参数下标 下标从0开始
             -->
            <constructor-arg index="0" value="张三疯"/>
            <constructor-arg index="1" value="218"/>
        </bean>
  • 通过无参构造方法来创建对象

    <!-- 通过无参构造方法来创建对象 -->
        <bean id="u4" class="cn.wh.vo.User">
            <property name="name" value="张三疯"/>
            <property name="age" value="218"/>
        </bean>

2.通过工厂来创建对象

  • 静态工厂来创建对象
    /**
     * 
     *  静态工厂
     */
    public class UserFactory {
        public static User newInstance(String name,int age){
            return new User(name,age);
        }
    }

    配置:

    <bean id="u5" class="cn.sxt.factory.UserFactory" factory-method="newInstance">
            <constructor-arg index="0" value="张三疯"/>
            <constructor-arg index="1" value="218"/>
        </bean>
  • 通过动态工厂来创建
    /**
     * 
     *  动态工厂
     */
    public class UserDynamicFactory {
        public User newInstance(String name,int age){
            return new User(name,age);
        }
    }

    配置:

    <!-- 设置动态工厂 -->
        <bean id="factory" class="cn.sxt.factory.UserDynamicFactory"/>
        <bean id="u6" factory-bean="factory" factory-method="newInstance">
            <constructor-arg index="0" value="张三疯"/>
            <constructor-arg index="1" value="218"/>
        </bean>

    

    

原文地址:https://www.cnblogs.com/forever2h/p/6739902.html