Spring中的BeanFactory和FactoryBean有何区别?

BeanFactory:

以Factory结尾,表示它是一个工厂类(接口),用于管理Bean的一个工厂。在spring中,BeanFactory是Ioc的核心容器,它的职责包括:实例化,定位,配置应用程序中的对象及建立这些对象的依赖。

FactoryBean:

以bean结尾,表示它是一个bean,不同于其它bean的是:他是实现了 FactoryBean接口的bean,根据该Bean的ID从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身,如果要获取FactoryBean对象,需要在id前面加一个&符号来获取。

相关概念

IOC:

是指容器控制程序对象之间的关系,而不是由程序代码直接操控。控制权由应用代码中转到外部容器,控制权的转移就是反转。Ioc也是依赖注入,顾名思义,就是组件之间的依赖关系由容器在运行期决定,即由容器动态地将某种依赖关系注入到组件中。
在spring的工作方式中,所有类都会在spring中登记,告诉spring这是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有类的创建,销毁都由spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的类来说,以前是它控制其他对象,现在是所有对象都被spring控制,所以就叫控制反转。

依赖注入的方式
  1. 使用setter方法注入
  2. 使用构造器注入
  3. 使用filed注入(用于注解模式)
  4. 静态,实例工厂的方法注入。
发布了194 篇原创文章 · 获赞 55 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_42470710/article/details/104082462