标签:
一、IoC的概述
IoC(控制反转:Inverse of Control)是Spring容器的内核,AOP、声明式事务等功能在此基础上开花结果。它涉及代码解耦、设计模式、代码优化等问题的考量。
Spring通过一个配置文件描述Bean及Bean之间的依赖关系,利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系。Spring的IoC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、资源装载的高级服务。
BeanFactory继承关系图
org.springframework.beans及org.springframework.context包是Spring IoC容器的基础。Bean工厂(org.springframework.beans.factory.BeanFactory)是Spring框架中最核心的接口,它提供了高级IoC的配置机制。BeanFactory使管理不同类型的Java对象成为可能,ApplicationContext是BeanFactory的扩展,功能得到了进一步增强,比如更易与Spring AOP集成、消息资源处理(国际化处理)、事件传递、其它第三方框架(ehCache)集成及各种不同应用层的context实现(如针对web应用的WebApplicationContext)。一般称BeanFactory为IoC容器,而称ApplicationContext为应用上下文。
对于两者用途,我们可以进行简单划分:BeanFactory是Spring框架的基础设施,面向Spring本身;ApplicationContext面向使用Spring框架的开发者。我们一般都不直接用BeanFactory,而是用它的实现类ApplicationContext,这个类会自动解析我们配置的applicationContext.xml,然后根据我们配置的bean来new对象,将new好的对象放进一个Map中,键就是我们bean的id,值就是new的对象。几乎所有的应用场合我们都直接使用ApplicationContext而非底层的BeanFactory。BeanFactory与ApplicationContext的区别
二、Bean的概念
由IOC容器管理的那些组成你应用程序的对象我们就叫它Bean, Bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。那IOC怎样确定如何实例化Bean、管理Bean之间的依赖关系以及管理Bean呢?这就需要配置元数据,在Spring中由BeanDefinition代表,后边会详细介绍,配置元数据指定如何实例化Bean、如何组装Bean等。
标签:
原文地址:http://www.cnblogs.com/duanxz/p/4714889.html