Spring框架的设计理念与设计模式(5)-Core组件

关键词:Spring,Core,组件,Context

上一章:Spring框架的设计理念与设计模式(4)-Context组件http://javapub.iteye.com/blog/751625

下一章:Spring框架的设计理念与设计模式(6)-Ioc容器及BeanFactory工厂http://javapub.iteye.com/blog/751635

Core组件

Core组件作为Spring的核心组件,他其中包含了很多的关键类,其中一个重要组成部分就是定义了资源的访问方式。这种把所有资源都抽象成一个接口的方式很值得在以后的设计中拿来学习。下面就重要看一下这个部分在Spring的作用。

下图是Resource相关的类结构图:

从上图可以看出Resource接口封装了各种可能的资源类型,也就是对使用者来说屏蔽了文件类型的不同。对资源的提供者来说,如何把资源包装起来交给其他人用这也是一个问题,我们看到Resource接口继承了InputStreamSource接口,这个接口中有个getInputStream方法,返回的是InputStream类。这样所有的资源都被可以通过InputStream这个类来获取,所以也屏蔽了资源的提供者。另外还有一个问题就是加载资源的问题,也就是资源的加载者要统一,从上图中可以看出这个任务是由ResourceLoader接口完成,他屏蔽了所有的资源加载者的差异,只需要实现这个接口就可以加载所有的资源,他的默认实现是DefaultResourceLoader。

下面看一下Context和Resource是如何建立关系的?首先看一下他们的类关系图:

从上图可以看出,Context是把资源的加载、解析和描述工作委托给了ResourcePatternResolver类来完成,他相当于一个接头人,他把资源的加载、解析和资源的定义整合在一起便于其他组件使用。Core组件中还有很多类似的方式。

目录--Spring框架的设计理念与设计模式

Spring框架的设计理念与设计模式(1)-Spring的架构http://javapub.iteye.com/blog/751539

Spring框架的设计理念与设计模式(2)-Spring的设计理念http://javapub.iteye.com/blog/751545

Spring框架的设计理念与设计模式(3)-Bean组件http://javapub.iteye.com/blog/751550

Spring框架的设计理念与设计模式(4)-Context组件http://javapub.iteye.com/blog/751625

Spring框架的设计理念与设计模式(5)-Core组件http://javapub.iteye.com/blog/751627

Spring框架的设计理念与设计模式(6)-Ioc容器及BeanFactory工厂http://javapub.iteye.com/blog/751635

Spring框架的设计理念与设计模式(7)-Spring中AOP特性与实现http://javapub.iteye.com/blog/751642

Spring框架的设计理念与设计模式(8)-代理模式http://javapub.iteye.com/blog/751652

Spring框架的设计理念与设计模式(9)-策略模式http://javapub.iteye.com/blog/751653

相关推荐