技术开发 频道

Spring子项目介绍



    概述

    【IT168 专稿】随着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框架作为其安全实现的方案。

    Spring LDAP
    象Spring为JDBC操作提供一个薄层封装一样,Spring LDAP子项目为标准的LDAP API提供了一个易用性的封装。将LDAP的异常转换为Spring的DAO异常体系,以减少显式异常捕捉的代码。其中LdapTemplate模板类象JdbcTemplate一样,封装了大量LDAP样板式的操作,利用这个模板类有助于提高LDAP应用的开发效率。Spring LDAP目前的版本是1.1。

    Spring Rich Client
    该子项目简称为Spring Rich,其目的是为开发基于Swing的应用程序提供解决方案,该项目提供了丰富的Swing UI工厂类和支持类,使用它们可以开发基于Spring框架的胖客户端应用,不过Spring Rich当前版本仅为0.21。

    Spring Extensions Modules
    SpringModules包含一组用来扩展Spring框架的工具与模块。它的主要目的是在不改动Spring框架核心的情况下让Spring框架能够与其它项目相结合。当前已经集成的模块包括Ant集成、Lucene集成、OSWorkflow集成、Flux产品集成等10几个集成模块。当前版本为0.8。

    Spring IDE for Eclipse
    Spring IDE for Eclipse是为方便Spring应用开发提供了插件,主要作用是为编写Spring配置文件带来便利,如上下文敏感,诱导输入等功能。当前版本为2.0。

    Spring BeanDoc
    Spring BeanDoc可以帮助我们快速生成描述Spring配置文件中Bean的关系文档,这样我们可以抛开Spring Bean配置文件以形象化的方式直观地了解Spring的各项配置。产生的文档提供图形的方式显示各个Bean的依赖关系、继承关系和各项属性等信息。对于在一个拥有复杂配置的大型应用而言,通过Spring的BeanDoc可以更快速的理解和把握全局,而且BeanDoc文档的风格和JavaDoc非常相似,所以不会有阅读任何的障碍。该子项目目前处于0.4版本。

    Spring OSGi
    在谈到Spring OSGi子项目之前,有必要了解一下什么是OSGi:OSGi(Open Service Gateway Initiative)开发服务网关。OSGi是由Ericsson、 ABB、 Alcatel、Cisco、 IBM、 Nortel、 Siemens、 HP、 Oracle、 Philips、Sun、Motorola、 Lucent等电信、计算机、电器巨人发起建立的一个工作组和开放式的论坛。其主要的功能是,为连接 Internet上的商业服务和下一代智能电器定义一个开放的标准。因此OSGi 将成为智能信息家电平台服务标准。OSGi规范将为Internet服务提供商(ISP)、网络控制员、设备制造商提供一个通过运行在家中或远程地点的网关服务器传递各种电子商务服务的公共平台。

    Spring OSGi 子项的目的是为了使得构建基于OSGi框架的应用变得更容易,提供更好的模块解耦和在运行期环境下动态添加,删除,更改模块的能力。该项目已经发布了1.0正式版。

    Spring .NET
    Spring框架的.NET语言实现,对于习惯用.NET语言开发的开发者,也可以使用Spring框架了。目前的版本为1.1。
    小结
    围绕着Spring框架这个核心,有许多不同的开源组织开发出了多个面向Spring应用的子项目,这些子项目解决了各种领域的问题,其中Acegi子项目是一个值得特别关注的项目。通过这些Spring子项目的繁荣发展,也佐证Spring在扩展性上的优越表现。
0
相关文章