BeanFactory 和 FactoryBean

原文连接_欢迎访问个人有道笔记spring

BeanFactory 和 FactoryBean 是spring两大核心的基础规范

  1. BeanFactory是一个接口,该接口定义IoC容器基本功能,常见的实现类有DefaultListableBeanFactory、XmlBeanFactory、ApplicationContext。若是粗略的理解的话能够理解为BeanFactory就是咱们的Ioc容器,咱们全部的bean都是从BeanFactory中获取的

BeanFactory

  1. FactoryBean是一个接口,也是一种bean,是从BeanFactory中获取到的bean,若是不看前缀Factory的话它就是一个Bean,好比CarBean,就是汽车Bean,没有什么特殊的,因此FactoryBean仅仅是一种Bean。固然只要是Bean就有本身的功能(面向对象基础),好比CarBean可能会有method,可能drive()驱动方法,parking()停车方法。这样咱们用这种角度来理解FactoryBean会简单不少,前缀来看Factory,工厂的意思,根据咱们常见的修饰模式、工厂模式能很快理解,这个Bean就是一个工厂Bean,这个Bean能提供修饰模式或者工厂模式。其实FactoryBean是spring AOP 功能实现的一个基础。(AOP实际上是对bean进行代理——proxy)

ProxyFactoryBean 结构

  1. 总结,BeanFactory规范了Ioc基本,用来提供各类Bean。FactoryBean规范了代理类或者工厂类的获取,用来提供修饰Bean(AOP原理中描述了从一个BeanFactory中获取FactoryBean(ProxyFactoryBean),并利用这个FactoryBean获取咱们要进行代理的类进行修饰,造成新的代理类,最终实现AOP功能)
相关文章
相关标签/搜索