Spring框架原理和实现机制( 二 )

核心:bean工厂 , 在Spring中 , bean工厂创建的各个实例称作bean 。

DI:(Dependency Injection)依赖注入 , IOC的另一种表现方式 , 组件以一种预先定义好的方式来接受容器注入的资源 。


  • BeanFactory 和 ApplicationContext 有什么区别?

BeanFactory 可以理解为含有 bean 集合的工厂类 。 BeanFactory 包含了种 bean 的定义 , 以便在接收到客户端请求时将对应的 bean 实例化 。 在加载配置文件时 , 配置文件中的bean不被实例化 , 只有当通过getBean()获取bean实例的时候才被创建 。

从表面上看 , application context 如同 bean factory 一样具有 bean 定义、bean 关联关系的设置 , 根据请求分发 bean 的功能 。 但 application context 在此基础上还提供了其他的功能:提供了支持国际化的文本消息、统一的资源文件读取方式、已在监听器中注册的 bean 的事件等 。

通过BeanFactory配置的bean比通过ApplicationContext配置的节约内存 。

推荐阅读