1.1. 概览
Spring包含许多功能和特性,并被很好地组织在下图所示的七个模块中。本节将依次介绍每个模块.
Spring框架概览
Core
构建于Beans包上Context包
DAO包 提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 该包也提供了一种方法实现编程性和声明性事务管理,不仅仅是针对实现特定接口的类, 而且对所有的POJO
ORM包
Spring的AOP包 提供与AOP联盟
Spring的Web包
Spring的Web MVC
利用积木方式来描述你在各种场合使用Spring的情况, 从Applet一直到完整的使用Spring的事务管理功能和Web框架的企业应用。
典型的完整Spring Web应用
一个典型的使用大部分Spring特性的Web应用。使用TransactionProxyFactoryBeans , Web应用是完全事务性的,就像使用EJB提供的那种容器管理的事务一样. 所有的你的自定义业务逻辑可以通过简单的POJO来实现,并通过Spring的Dependency Injection容器进行管理。其他的服务,如发送email和校验,独立于Web层, 使你能够决定在哪里执行校验规则。 Spring的ORM支持包含了Hibernate,JDO和iBatis。如使用HibernateDaoSupport , 你可复用已经存在的Hibernate映射。从Controller无缝整合web层和领域模型, 消除对ActionForms
使用了第三方框架的Spring中间层
有时,现有情况不允许你彻底地转换到一种不同的框架。Spring没有 强迫 你使用它的全部,它不是一种全有全无 的解决方案。现有的使用WebWork,Struts,Tapestry或其他的UI框架的前端程序可极佳的 与基于Spring的中间层进行集成,使你可使用Spring提供的事务处理特性。 你唯一要做的事是使用ApplicationContext 来挂接你的业务逻辑和 通过WebApplicationContext
远程使用场景
当你需要通过WebService来访问你的现有代码时, 你可使用Spring的Hessian- ,Burlap- , Rmi- 或者 JaxRpcProxyFactory
EJBs - 封装现有的POJO
Spring也为EJB提供了访问层和抽象层, 使你可复用已存在的POJO并将他们包装在Stateless SessionBean中, 以便在可能需要声明式安全(EJB中的安全管理,译者注)的可升级的可容错的Web应用中使用。