BeanFactory是什么?
BeanFactory是Spring 容器的根接口,它是IOC的基本容器,負責管理和加載Bean,它為具體的IOC容器提供了最基本的規范,比如DefaultListableBeanFactory和ConfigurableBeanFactory,BeanFactory也提供了用于讀取XML配置文件的實現,比如XMLBeanFactory。
ApplicationContext接口是BeanFactory的擴展,它除了具備BeanFactory接口所擁有的全部功能外,還有應用程序上下文的一層含義,主要包括:
- 繼承自ListableBeanFactory接口,可以訪問Bean工程上下文的組件
- 繼承自ResourceLoader接口,以通用的方式加載文件資源
- 繼承自ApplicationContextPublisher接口,擁有發布事件、注冊監聽的能力
- 繼承自MessageResource接口,解析消息,支持國際化
它最主要的實現就是ClassPathXmlApplicationContext,用來讀取XML配置文件。
FactoryBean是什么?
FactoryBean是一個接口,它本身就是一個對象工廠,如果Bean實現了該接口,它被用作公開的對象工廠,而不是作為直接將bean暴露的實例,該接口在框架內部大量使用,例如AOPProxyFactoryBean和JndiObjectFactoryBean,也可以自定義組件,