“什么是 FactoryBean”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“1”的新页面)
 
 
(未显示同一用户的7个中间版本)
第1行: 第1行:
1
+
FactoryBean 是 Spring 所提供的一种较灵活的创建 Bean 的方式,
 +
 
 +
可以通过实现 FactoryBean 接口中的 getObject() 方法来返回一个对象,这个对象就是最终的 Bean 对象。
 +
 
 +
=== FactoryBean 接口中的方法 ===
 +
Object getObject():返回的是 Bean 对象
 +
 
 +
boolean isSingleton():返回是否是单例 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>'''FactoryBean 的特殊点''':
 +
 
 +
上述代码,实际上对应了两个 Bean 对象:
 +
 
 +
1、beanName 为“zhangsan”,bean 对象为 getObject 方法所返回的 User 对象。
 +
 
 +
2、beanName 为 “&zhangsan”,bean 对象为 ZhangsanFactoryBean 类的实例对象。
 +
 
 +
FactoryBean 对象本身也是一个 Bean,同时它相当于一个小型工厂,可以生产出另外的 Bean。
 +
 
 +
BeanFactory 是一个 Spring 容器,是一个大型工作,它可以生产出各种各样的 Bean。
 +
 
 +
FactoryBean 机制被广泛应用在 Spring 内部和 Spring 与第三方框架或组件的整合过程中。

2024年7月21日 (日) 04:29的最新版本

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;
	}

}

FactoryBean 的特殊点

上述代码,实际上对应了两个 Bean 对象:

1、beanName 为“zhangsan”,bean 对象为 getObject 方法所返回的 User 对象。

2、beanName 为 “&zhangsan”,bean 对象为 ZhangsanFactoryBean 类的实例对象。

FactoryBean 对象本身也是一个 Bean,同时它相当于一个小型工厂,可以生产出另外的 Bean。

BeanFactory 是一个 Spring 容器,是一个大型工作,它可以生产出各种各样的 Bean。

FactoryBean 机制被广泛应用在 Spring 内部和 Spring 与第三方框架或组件的整合过程中。