实现FactoryBean接口在Spring IOC容器中配置Bean
Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean。工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的getObject方法所返回的对象。
public interface FactoryBean<T> {
T getObject() throws Exception;
Class<?> getObjectType();
boolean isSingleton();
}
下面给出一个例子。首先新建一个Personfactorybean类,实现FactoryBean接口,并实现里面的三个方法。
package com.spring.c1;
import org.springframework.beans.factory.FactoryBean;
public class Personfactorybean implements FactoryBean<Person> {
@Override
public Person getObject() throws Exception {
Person person=new Person();
person.setAge(10);
person.setName("Mike");
return person;
}
@Override
public Class<?> getObjectType() {
return null;
}
@Override
public boolean isSingleton() {
return true;
}
}
在xml文件中配置bean,class属性为上面实现的Personfactorybean类。至此就完成了实现FactoryBean接口配置Bean。
<bean id="person1" class="com.spring.c1.Personfactorybean"></bean>