Open Source, Open Future!
  menu
107 文章
ღゝ◡╹)ノ❤️

ObjectFactory

简介

一个工厂对象接口,用于生成指定的bean实例。

源码

public interface ObjectFactory<T> {
     // 返回对象实例
    T getObject() throws BeansException;
}

示例

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="myObjectFactory" class="mncode.MyObjectFactory"/>

</beans>
public class User {
}
public class MyObjectFactory implements ObjectFactory {

    @Override
    public Object getObject() {
        return new User();
    }
}
    @Test
    public void test5() {
        // 资源
        ClassPathResource resource = new ClassPathResource("bean.xml");
        // 创建容器
        DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
        // 创建读取器
        XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
        // BeanDefinition载入和注册
        reader.loadBeanDefinitions(resource);

        Object o1 = factory.getBean("myObjectFactory");
        System.out.println(o1);

        MyObjectFactory o2 = (MyObjectFactory) factory.getBean("myObjectFactory");
        System.out.println(o2.getObject());
    }

输出结果:

mncode.MyObjectFactory@6f7fd0e6
mncode.User@47c62251