BeanFactory 和 FactoryBean
原文連接_歡迎訪問個人有道筆記spring
BeanFactory 和 FactoryBean 是spring兩大核心的基礎規範
- BeanFactory是一個接口,該接口定義IoC容器基本功能,常見的實現類有DefaultListableBeanFactory、XmlBeanFactory、ApplicationContext。若是粗略的理解的話能夠理解爲BeanFactory就是咱們的Ioc容器,咱們全部的bean都是從BeanFactory中獲取的
- 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)
- 總結,BeanFactory規範了Ioc基本,用來提供各類Bean。FactoryBean規範了代理類或者工廠類的獲取,用來提供修飾Bean(AOP原理中描述了從一個BeanFactory中獲取FactoryBean(ProxyFactoryBean),並利用這個FactoryBean獲取咱們要進行代理的類進行修飾,造成新的代理類,最終實現AOP功能)
歡迎關注本站公眾號,獲取更多信息