Spring使用静态工厂和实例化工厂创建对象

文章中使用的实体类等信息为上一章内容,详情查看

1:使用静态工厂创建对象

1.1: java静态工厂类

public class Factory {
    public static User getUser(String name, int age, char sex){
        return new User(age,sex,new Date(),name);
    }
}

1.2:配置文件创建对象

<!--    使用静态工厂模式创建对象     静态工厂类                       调用工厂的那个方法创建对象-->
    <bean id="userFact" class="com.wangYuan.test.Factory.Factory" factory-method="getUser">
    <!-- 调用静态工厂方法时候,传递参数-->
        <constructor-arg name="name" value="张三"></constructor-arg>
        <constructor-arg name="age" value="21"></constructor-arg>
        <constructor-arg name="sex" value=""></constructor-arg>
    </bean>

1.3: 代码测试

    /**
     * 测试调用静态工厂方式获取对象
     */
    @Test
    public void test03(){
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("spring01.xml");
        User user02 = (User)app.getBean("userFact");
        System.out.println(user02);
    }

2: 实例化工程创建对象

1.1: java实例化工厂类

public class Factory {
    public  User getUser01(String name,int age,char sex){
        return new User(age,sex,new Date(),name);
    }
}

1.2:配置文件创建对象

<!--    实例化工厂模式创建对象
        先创建工厂对象,在调用工厂方法创建对象
-->
    <bean id="userFactory" name="Factory" class="com.wangYuan.test.Factory.Factory"></bean>
    <bean id="userFact01"  factory-bean="userFactory" factory-method="getUser01">
        <constructor-arg name="name" value="张三"></constructor-arg>
        <constructor-arg name="age" value="21"></constructor-arg>
        <constructor-arg name="sex" value=""></constructor-arg>
    </bean>

1.3: 代码测试

    /**
     * 测试调用实例化工厂方式获取对象
     */
    @Test
    public void test04(){
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("spring01.xml");
        User user02 = (User)app.getBean("userFact01");
        System.out.println(user02);

    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值