简介
一个工厂对象接口,用于生成指定的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