BeanFactory 与 FactoryBean 概念的理解

本文深入探讨了Spring IoC容器的核心组件——BeanFactory,包括其基本概念、作用及内部实现细节,同时介绍了FactoryBean作为特殊类型的Bean在创建Bean实例过程中的独特功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BeanFactory 

本质是一个Bean工厂,负责Bean生命周期管理,存储Bean实例,提供Bean的查找

是spring Ioc容器的顶级接口,ApplicationContext接口是该接口的一个子接口;

public interface BeanFactory {


        //getBean时 如果名称还有此前缀,会获取FactoryBean的实例,而不是FactoryBean生成的Bean实例
	String FACTORY_BEAN_PREFIX = "&";

	Object getBean(String name) throws BeansException;
 
	<T> T getBean(String name, Class<T> requiredType) throws BeansException;
 
	<T> T getBean(Class<T> requiredType) throws BeansException;


	Object getBean(String name, Object... args) throws BeansException;
 
	boolean containsBean(String name);
 
	boolean isSingleton(String name) throws NoSuchBeanDefinitionException;


	boolean isPrototype(String name) throws NoSuchBeanDefinitionException;


	boolean isTypeMatch(String name, Class<?> targetType) throws NoSuchBeanDefinitionException;


	Class<?> getType(String name) throws NoSuchBeanDefinitionException;
 
	String[] getAliases(String name);
}

FactoryBean

本质是一个Bean,

是一个具有工厂特性的Bean,

与普通Bean的区别是,他的实例用于生产Bean; 途径:getObject方法;

public interface FactoryBean<T> {

	T getObject() throws Exception;

	Class<?> getObjectType();

	boolean isSingleton();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值