随着富Internet应用(RIA)技术的不断成熟,将类似于Adobe Flex这样的RIA应用与健壮的服务器端技术进行集成就变得越来越重要了。Java开发者最喜欢的服务器端框架之一Spring将在这个过程中扮演着重要的角色。
RIAvolutionize the Web的Marco Casario解释到他为何建议BlazeDS成为Flex与Spring结合的企业系统时说道:“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也非常棒。”
【编辑推荐】