您现在的位置: 弘智首页 > JAVA > JAVA框架学习 >

Spring子项目介绍

时间:2012-10-31 09:48 来源:未知 作者:zcl
随着Spring的广泛使用以及Spring自身功能的不断强大,在Spring之下衍生出多个子项目,这对Spring的发展非常有益处,因为基于 Spring的应用拥有更多可供选择产品和服务。Spring官方网站下拥有10多个子项目,我们将在本文里分别对它们进行介绍。

    Spring Web Flow
    Spring Web Flow (简称SWF)是基于有限状态机理论实现的一款功能强大的页面流程控制框架,其目标是成为管理Web应用页面流程的最佳方案,它的内容尽在“Flow”一 词上,目前版本为1.0。当你的应用页面需要复杂的向导式控制,比如在一个比较大的事务中通过一连串的步骤完成一个业务,SWF将会是一个良好的选择。

    SWF位于Web抽象的顶层,通过集成Struts,Spring MVC,Portlet MVC和JSF,成为一个功能齐全的页面流程控制引擎。SWF属于Web MVC中“C”的部分,它允许显式地通过声明式、可管理的方式控制Web应用程序的页面流程,为将来的调整留下了便利。

    有了SWF,Spring 的Web功能层就多了一件有效的武器,它和Spring MVC、Struts等Web层技术并不冲突,相反是有益的补充。我们将在第20章深入学习SWF的内容。

    Spring Web Services
    Spring Web Services是Spring社区中一个着眼于创建文档驱动的Web Service的产品,它的目标是为契约优先的SOAP服务提供开发的便利,通过各种方式控制XML文档的内容承载以开发灵活的Web Service。
该子项目目前的版本也是1.0,主要包括以下三个模块:
 灵活对象/XML映射抽象模块:支持JAXB,XMLBeans,Castor以及JiBX;
 Web Service框架模块:主要为了和Spring MVC集成;
 Web Service安全模块:实现了WS-Security并Acegi Security子项目集成。

    Spring Security (Acegi Security)
    Acegi子项目是一个用于Spring Framework的安全框架,能够和Web容器无缝集成。它基于Spring的基础功能,提供了认证安全服务和程序资源访问控制。
    Acegi采用小步前进的策略,在1.0版本发布之前已经发布了许多可用的小版本,具有了广泛的知名度。我们认为在所有Spring子项目中,Acegi是最值得学习的一个,主要有以下几点原因:
    1)象事务管理一样,几乎所有类型的应用系统都会涉及到安全访问控制问题;
    2)Acegi允许你将身份认证、访问控制的功能代码从业务主程序中剥离出来,通过框架并辅以少量代码加以解决,它是AOP技术在事务管理之外又一个可以大显身手的地方;
    3)Acegi很好的支持了迭代开发——在前期阶段,可以不考虑安全问题,在后面的迭代中,开发者可以在不影响前期开发业务代码的情况以插件的方式添加Acegi安全控制功能;
    4) Acegi 1.0版本已经成熟稳定,对应用程序安全的各种问题都提供了解决方案,同时还保持框架的灵活性和扩展性:举个小例子,对于身份认证的领域问题,Acegi 支持图片验证码、Cookie记忆、SSL加密、浏览器加密传输、证书认证等等,囊括了几乎所有的登录需求。

    我们有理由相信,随着Acegi框架的推出,将会有越来越多基于Spring的应用使用Acegi框架作为其安全实现的方案。
(责任编辑:admin)