Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势就是其分层架构,分层架构允许你选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。
组成Spring框架的每个模块都可以单独存在,或者与其它一个或多个模块联合实现。每个模块的功能如下:
1.核心模块
SpringCore模块是Spring的核心容器,它实现了IoC模式,提供了Spring框架的基础功能。此模块中包含的BeanFactory类是Spring的核心类,负责JavaBean的配置与管理。它采用Factory模式实现了IoC即依赖注入。谈到JavaBean,它是一种Java类,它遵从一定的设计模式,使它们易于和其它的开发工具和组件一起使用。定义JavaBean是一种Java语言编写的可重用组件。要编写JavaBean,类必须是具体类和公共类,并且具有无参构造器。
2.Context模块
SpringContext模块继承了BeanFactory(或者说Spring核心)类,并且添加了事件处理、国际化、资源装载、透明装载以及数据校验等功能。它还提供了框架式的Bean访问方式和很多企业级的功能,如JNDI访问,支持EJB、远程调用、集成模块框架、Email和定时任务调度等。
3.AOP模块
Spring集成了所有AOP功能。通过事务管理可以使任意Spring管理的对象AOP化。Spring提供了用标准Java语言编写的AOP框架,它的大部分内容都是基于AOP的API开发的。它使应用程序抛开EJB的复杂性,但拥有传统EJB的关键功能。
4.DAO模块
DAO是DataAccessObject的缩写,DAO模式思想是将业务逻辑代码与数据库交互代码分离,降低两者耦合。通过DAO模式可以使结构变得更为清晰,代码更为简洁。DAO模块提供了JDBC抽象层,简化了数据库厂商的异常错误(不再从SQLException继承大批代码),大幅度减少代码的编写,并且提供了对声明式事务和编程式事务的支持。
5.ORM映射模块
SpringORM模块提供了对现有ORM框架的支持,各种流行的ORM框架已经非常成熟,并且拥有大规模市场,Spring没有必要开发新的ORM工具,它对Hibernate提供了完美的整合功能,同时也支持其它ORM工具。注意这里Spring是提供各类的接口,目前比较流行的下层数据库封闭映射框架,如ibatis、Hibernate等。
6.Web模块
此模块建立在SpringContext基础之上,它提供了Servlet监听器的Context和Web应用的上下文。对现有的Web框架,如Structs等,提供了集成。
7.MVC模块
SpringWebMVC模块建立在Spring核心功能之上,这使得它能拥有Spring框架的所有特征,能够适应多种视图、模板技术、国际化和验证服务,实现控制逻辑和业务逻辑的清晰分离。
说说MVC在JSP的作用:这里引入了“控制器”的概念,控制器一般由Servlet担任,客户端的请求不再直接送给一个处理业务逻辑的JSP页面,而是送给这个控制器,再由控制器根据具体的请求调用不同的事务逻辑,并将处理结果返回给合适的页面。因此,这个Servlet控制器为应用程序提供了一个进行前后端处理的中枢。一方面为输入数据的验证、日志及实现国际化编程提供了一个合适的切入点;另一方面也提供了将业务逻辑从JSP文件剥离的可能。业务逻辑从JSP页面分离后,JSP文件蜕变为一个单纯完成显示任务的东西,这就是常说的View。而独立出来的事务逻辑变成人们常说的Model,再加上控制器Controller本身,就构成了MVC模式。实践证明,MVC模式为大型程序的开发及维护提供了巨大的便利。