

1.1
总述
下面的图展示了Spring框架所包括的七个模块。这章将分别讨论每个模块。

Spring框架结构图
Core包框架的最基本的模块,提供了IoC和DI特性。其中最核心的概念是BeanFactory,它提供了工厂模式的一种复杂的实现,它去除了对于程序独立性的要求,尽量减少了对于实际应用业务逻辑依赖性的配置和说明信息。
Core包的上面是“上下文”(Context)包,它提供了以框架方式访问对象的方法,有点类似以前的JNDI注册。上下文包集成自Beans包,并且加入了对于国际化(I18N)(如使用资源邦定)、事件传递、资源加载和上下文对象的透明创建(如通过Servlet容器创建)。
DAO包提供了JDBC抽象层的封装,有了它就可以免除乏味的JDBC编码和数据库特定错误码的分析工作。这个包也象公开的事务管理那样,不但为类实现了特定的接口,而且还包括你的POJOs(plain old Java objects)。
ORM包提供了常用的对象关系映射API的集成封装,包括JPA、JDO、Hibernate和iBatis。使用ORM包,你可以将O/R映射和Spring提供的其他特性一起使用,如前面提到的简单的事务管理特性。
Spring的AOP包提供面向方面的程序实现,你可以用它定义方法拦截器和切入点(pointcut),可以很明显减少理论上说分离出来的代码实现功能。使用源码级的元数据(metadata)功能,你可以将各种动作信息合并到代码中,从某种以上说,有点类似于.Net的属性(attrubute)。
Spring的Web包提供基本的面向Web的特性集成,分块的文件上传功能,利用Servlet监听器的IoC容器初始化功能,还有面向Web的应用上下文。当和WebWork或者Structs一起使用的时候,需要将这个包集成进去。
Spring
的
MVC
包提供“模块
-
视图
-
控制器”(
MVC
)模式的实现。
Spring
的
MVC
框架并不只是实现而已;它提供了一种清晰的将业务模型代码和
Web
窗体分离的方法,并且允许你方便的使用
Spring
框架的其他部分。