Spring篇(4-2)--Spring BeanFactory与FactoryBean 区别

本文介绍了Spring中的BeanFactory和FactoryBean。BeanFactory作为IOC容器的基础接口,负责管理Bean。ApplicationContext作为BeanFactory的扩展,提供更多高级功能。FactoryBean则是一个特殊的Bean,能够生产或修饰对象,结合了工厂模式和修饰器模式。了解两者之间的区别对于深入理解Spring的IoC容器至关重要。

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

一、BeanFactoryFactoryBean分别是什么


1.BeanFatory

  • BeanFactory是个Factory,也就是IOC容器或对象工厂。所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。

我们经常用到的是ApplicationContext 接口也是继承BeanFactory的。

spring不允许我们直接操作 BeanFactory bean工厂,所以为我们提供了ApplicationContext 这个接口继承BeanFactory 接口,ApplicationContext包含BeanFactory的所有功能,同时还进行更多的扩展。

2.FatoryBean

  • FactoryBean是个Bean。这个Bean不是简单的Bean,而是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂模式和修饰器模式类似 。

FactoryBean 接口提供三个方法,用来创建对象

public interface FactoryBean<T> {

    //创建的具体bean对象时的类型
    @Nullable
    T getObject() throws Exception;

    //具体创建具体对象是由此getObject()方法来返回的
    @Nullable
    Class<?> getObjectType();
    
    //是否是单例
    default boolean isSingleton() {
        return true;
    }
}

二、BeanFactoryFactoryBean的区别


1.BeanFactory与FactoryBean都是接口。

2.BeanFactory是个bean 工厂, 它负责生产和管理bean的一个工厂是ioc 容器最底层的接口,是个ioc容器,是spring用来管理和装配普通bean的ioc容器(这些bean成为普通bean)。

3.FactoryBean是个bean,在IOC容器的基础上给Bean的实现加上了一个简单工厂模式和装饰模式,是一个可以生产对象和装饰对象的工厂bean,由spring管理后,生产的对象是由getObject()方法决定的

 更多内容:

Spring篇(1)--SpringBoot是什么?原理是怎么样的?

Spring篇(2)--Spring IOC基本流程原理

Spring篇(3)--Spring Aop基本流程原理

Spring篇(4-1)--Spring Bean 是什么及其生命周期阶段

Spring篇(4-2)--Spring BeanFactory与FactoryBean 区别

Spring篇(5-1)--Spring事务流程原理

Spring篇(5-2)--Spring事务传播行为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sun cat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值