“什么是 FactoryBean”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) |
Jihongchang(讨论 | 贡献) |
||
| 第8行: | 第8行: | ||
boolean isSingleton():返回是否是单例 Bean 对象 | boolean isSingleton():返回是否是单例 Bean 对象 | ||
| − | Class getObjectType():返回的是 Bean 对象的类型 | + | Class getObjectType():返回的是 Bean 对象的类型<syntaxhighlight lang="java"> |
| + | @Component("zhangsan") | ||
| + | public class ZhangsanFactoryBean implements FactoryBean { | ||
| + | |||
| + | @Override | ||
| + | // Bean 对象 | ||
| + | public Object getObject() throws Exception { | ||
| + | return new User(); | ||
| + | } | ||
| + | |||
| + | @Override | ||
| + | // Bean 对象的类型 | ||
| + | public Class<?> getObjectType() { | ||
| + | return User.class; | ||
| + | } | ||
| + | |||
| + | @Override | ||
| + | // 所定义的 Bean 是单例还是原型 | ||
| + | public boolean isSingleton() { | ||
| + | return true; | ||
| + | } | ||
| + | |||
| + | } | ||
| + | </syntaxhighlight> | ||
2024年7月21日 (日) 04:23的版本
FactoryBean 是 Spring 所提供的一种较灵活的创建 Bean 的方式,
可以通过实现 FactoryBean 接口中的 getObject() 方法来返回一个对象,这个对象就是最终的 Bean 对象。
FactoryBean 接口中的方法
Object getObject():返回的是 Bean 对象
boolean isSingleton():返回是否是单例 Bean 对象
Class getObjectType():返回的是 Bean 对象的类型
@Component("zhangsan")
public class ZhangsanFactoryBean implements FactoryBean {
@Override
// Bean 对象
public Object getObject() throws Exception {
return new User();
}
@Override
// Bean 对象的类型
public Class<?> getObjectType() {
return User.class;
}
@Override
// 所定义的 Bean 是单例还是原型
public boolean isSingleton() {
return true;
}
}