BeanFactory是spring 的核心类
BeanFactory是IOC容器的核心接口,职责包括:实例化,定位,配置应用程序中的兑换及建立这些对象间的依赖。
ApplicationContext是contex包的核心,由BeanFactory接口派生,更加面向框架的方式增强BeanFactory的功能。
区别
BeanFactory采用延迟加载(Lazy-init)形式注入Bean的,即使用到某个类的时候才加载实例化
ApplicationContext是在容器启动的时候就创建所有的Bean
FactoryBean 是一个工厂Bean
以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean<T>接口的Bean,根据该Bean的ID从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身,如果要获取FactoryBean对象,请在id前面加一个&符号来获取。
BeanFactory和FactoryBean的区别
BeanFactory和FactoryBean其实没有什么比较性的,只是两者的名称特别接近,所以有时候会拿出来比较一番,BeanFactory是提供了OC容器最基本的形式,给具体的IOC容器的实现提供了规范,FactoryBean可以说为IOC容器中Bean的实现提供了更加灵活的方式,FactoryBean在IOC容器的基础上给Bean的实现加上了一个简单工厂模式和装饰模式,我们可以在getObject()方法中灵活配置。
本文深入探讨了Spring框架的核心容器BeanFactory与ApplicationContext的区别,以及FactoryBean如何提供更灵活的Bean实现方式,介绍了它们在延迟加载、对象实例化和依赖注入等方面的角色。
4295

被折叠的 条评论
为什么被折叠?



