Spring中的FactoryBean工厂简单实现

Spring中的FactoryBean工厂简单实现

Spring中许多地方都使用到了工厂模式,现在我们根据Spring提供的接口创建一个工厂,了解Spring中FactoryBean的实现原理。

首先我们创建一个Phone类

public class Phone {
    //手机品牌
    private String logo;
    //手机芯片
    private String cpu;
    /*省略getter,setter等方法*/
}

接下来我们创建一个FactoryBean的实现类,在Spring中实现了FactoryBean接口的类都会被Spring识别为工厂,会自动调用该工厂的方法来创建实例对象。

package spring.stu.beanFactory;

import org.springframework.beans.factory.FactoryBean;
import spring.stu.bean.Phone;

/**
 * 实现了FactoryBean的接口的类可以被Spring识别
 * Spring会自动调用工厂类创建实例
 */
public class MyFactoryBeanStu implements FactoryBean<Phone> {
    /**
     * 返回创建的实例对象
     * @return
     * @throws Exception
     */
    @Override
    public Phone getObject() throws Exception {
        System.out.println("Spring调用工厂方法帮你创建实例对象");
        Phone p = new Phone("华为","麒麟995");
        return p;
    }

    /**
     * 返回创建的对象的类型
     * @return
     */
    @Override
    public Class<?> getObjectType() {
        return Phone.class;
    }

    /**
     * 该工厂所创建的对象是否为单例
     * @return
     */
    @Override
    public boolean isSingleton() {
        return false;
    }
}

之后我们去配置文件中注册工厂对应的bean

<bean id="myFactoryBean" class="spring.stu.beanFactory.MyFactoryBeanStu">

</bean>

然后我们在测试类中进行测试:

@Test
public void test1() {
    ApplicationContext ac = new ClassPathXmlApplicationContext("ioc.xml");
    Object bean = ac.getBean("myFactoryBean");
    System.out.println(bean);
}

测试结果如下:

Spring调用工厂方法帮你创建实例对象
Phone{logo='华为', cpu='麒麟995'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值