beanFactory通常与FactoryBean容易混淆,今天我就来讲解一下FactoryBean.spring容器中有两种类型的Bean,一种是普通的Bean,一种是工厂bean.FactoryBean的存在的目的是方便我们创建一些复杂的对象,如果是单例的,会帮我们将单例对象放入容器中。
eg:1.定义User类
public class User {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User(Integer id, String name) {
this.id = id;
this.name = name;
}
public User() {
}
}
2.创建UserFactoryBean
@Configuration
public class UserFactoryBean implements FactoryBean<User> {
@Override
public User getObject() throws Exception {
return new User(1, "22");
}
@Override
public Class<?> getObjectType() {
return User.class;
}
@Override
public boolean isSingleton() {
return true;
}
}