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,也可以自定义组件,