随着富 Internet 应用(RIA)技术的不断成熟,将类似于 Adobe Flex 这样的 RIA 应用与健壮的服务器端技术进行集成就变得越来越重要了。Java 开发者最喜欢的服务器端框架之一 Spring 将在这个过程中扮演着重要的角色。
RIAvolutionize the Web 的 Marco Casario 解释到他为何建议 BlazeDS 成为 Spring 与 Flex 结合的企业系统时说道:“Spring 是一个开源框架,可以让开发人员开发起来 更加轻松。如果使用标准的 JEE 方式,你需要编写大量无用或者冗余的代码,还可能花费大量时间去实现 J2EE 的设计模式,而这些模式仅仅是为了应对技术上 的限制而不是真正的解决方案。Spring 可以通过简化这些过程而节省大量时间。”
Christophe Coenraets 解释了 Flex 与 Spring 集成的基本原理:
Spring 的控制反转( Inversion of Control , 即 IoC)的主要思想就是让容器实例化组件(并且注入其依赖)。但是在默认情况下,由 Flex 客户端远程访问的组件是在服务器端由 Flex 目的文件实例化 的。所以 Flex 与 Spring 集成的关键在于配置 Flex 目的文件以使其能够让 Spring 容器来管理实例化的 Spring beans。Flex 数据服务支持工厂的概念以便可以实例化这类客户化组件。工厂的作用仅仅在于向 Flex 目的文件提供准备好的组件实例,而不是让 Flex 目的文件自己去实例化这些组件。
关于 Flex 与 Spring、 IBATIS 和 Cairngorm 的集成, Chris Giametta 说道:
我相信可以创建一个一致的、模块化的、可重用的架构。这个架构既可以支持小型应用,也可以支持非常健壮 的企业级应用。项目成功的一个关键要素在于创建这样一个架构:新人能迅速投入进去,并且很快就能上手。我觉得将 Flex 与 Spring、iBATIS 和 Cairngorm 集成可以帮助我迅速构建出一个基于模式的、可重用的架构。
Sébastien Arbogast 在不遗余力地发表一系列博文,以阐述如何构建全栈式 Flex、BlazeDS 和 Spring 集成解决方案。
Arbogast 的这个全栈式集成,从下到上包括如下内容:JBoss 作为应用服务器、MySQL 作为数据存储、 Hibernate 完成数据访问、Spring 用来构建业务层、 BlazeDS 作为远程服务、Flexe-genial 用来构建富客户端。该系统使用 Maven 及 flex-compiler-mojo 插件进行构建。
Arbogast 说:“这个项目的建立当然需要一些工作,但是——除去配置文件复制上的一些小问题外(而且这很快会得到改善)——它真的很干净,而且 flex-compiler-mojo 也非常棒。”
评论