Spring框架提供了两个IOC容器,用于管理,配置和操作Bean。一个是BeanFactory,另一个是应用程序上下文。
应用程序上下文接口扩展了BeanFactory,以增强BeanFactory的功能。
在新的Spring版本中,BeanFactory替换为ApplicationContext。但是,BeanFactory的存在是为了向后兼容。
Spring 2.0及更高版本使用了BeanPostProcessor扩展点(接口提供了一些回调方法,我们可以实现这些方法来定制实例化逻辑,依赖项解析逻辑等)。因此,如果您使用的是BeanFactory,则某些功能(如AOP和事务处理)必须进行一些额外的配置才能使用。
序号 | 键 | 豆工厂 | 应用环境 |
---|---|---|---|
1个 | 实作 | XMLBeanFactory implements BeanFactory | FileSystemXmlApplicationContext,ClassPathXmlApplicationContext和AnnotationConfigWebApplicationContex实现ApplicationContext。 此外,ApplicationContext扩展了Beanfactory |
2 | 注解 | No | 是 |
3 | 实例化 | Benafactory instantiate beans when getBean() method gets called. | 容器启动时应用instainte bean。 |
4 | 活动发布 | Bean factory does not have the ability to push events to the beans | 应用程序上下文具有将事件推送到bean的能力。 |
5 | 加载机制 | Lazy loading | 激进的加载 |