`
jinyongzhang
  • 浏览: 9227 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

构建全栈式Flex、BlazeDS和Spring集成解决方案

    博客分类:
  • Flex
阅读更多

随着富 Internet 应用( RIA )技术的不断成熟,将类似于 Adobe Flex 这样的 RIA 应用与健壮的服务器端技术进行集成就变得越来越重要了。 Java 开发者最喜欢的服务器端框架之一 Spring 将在这个过程中扮演着重要的角色。

Spring 的控制反转( Inversion of Control IoC )的主要思想就是让容器实例化组件(并且注入其依赖)。但是在默认情况下,由 Flex 客户端远程访问的组件是在服务器端由 Flex 目的文件实例化的。所以 Flex Spring 集成的关键在于配置 Flex 目的文件以使其能够让 Spring 容器来管理实例化的 Spring beans Flex 数据服务支持工厂的概念以便可以实例化这类客户化组件。工厂的作用仅仅在于向 Flex 目的文件提供准备好的组件实例,而不是让 Flex 目的文件自己去实例化这些组件。

Sébastien Arbogast 在不遗余力地发表一系列博文,以阐述如何构建全栈式 Flex BlazeDS Spring 集成解决方案。 Arbogast 的这个全栈式集成,从下到上包括如下内容: JBoss 作为应用服务器、 MySQL 作为数据存储、 Hibernate 完成数据访问、 Spring 用来构建业务层、 BlazeDS 作为远程服务、 Flex 用来构建富客户端。该系统使用 Maven flex-compiler-mojo插件 进行构建。 [1]

 

我翻译的中文文档下载地址:

      http://download.csdn.net/source/672504

 

 本文档就是 Arbogast 发布在 Adobe Developer Connection 上一系列文章的中文翻译版本。我使用了先直译后意译的方法,尽量做到语言流畅、通俗而易懂;修补了英文原文的 3 处疏漏 ,添加了 2 张运行效果图,希望能帮助你理解。当然,翻译不恰之处,敬请指正。

 以下是英文原文链接:

第一部分: http://www.adobe.com/devnet/flex/articles/fullstack_pt1.html

第二部分: http://www.adobe.com/devnet/flex/articles/fullstack_pt2.html

第三部分: http://www.adobe.com/devnet/flex/articles/fullstack_pt3.html



[1]   以上文字摘引自 http://www.infoq.com/cn/news/2008/05/integrate-flex-spring

分享到:
评论
15 楼 matt.u 2009-04-24  
lazyload不会导致多次http,因为在blazeds对java对象进行属性遍历时,已经需要lazyload一个一个 读出来了。不会产生多次http请求,但是会根据你的关联,导致多次sql查询。
14 楼 zephyrleaves 2009-04-20  
我一直有个疑问,用flex的时候掉LazyLoad,那会不会产生非常多的http请求,毕竟这个是在两个vm间进行的交互.这样多性能应该是一个挑战
两个vm间的交互提供这么个细粒度的接口感觉不是太好,,一般还是通过DTO来解决吧
13 楼 matt.u 2009-04-19  
有空花时间研究下,或许以后用得上。
多谢,jinyongzhang。
12 楼 jinyongzhang 2009-04-18  
matt.u 写道
wills 写道
Hibernate是数据库操作层面的,Blazeds 其实是Flex与Java沟通的一个桥梁,它可以让Flex跟java进行无缝调用,至于提到Blazeds是否支持Lazy Load特性,这完全是两码事~


BlazeDS跟LazyLoad还是有些关系的。当你想把pojo对象传到Flex中时,BlazeDS对该pojo对象的所有属性进行遍历、组报(可能用“组报”表达不是黑准确),BlazeDS并不知道你的pojo对象哪些属性是lazyload,反正他会一直调用getXXX方法,结果导致N多关联对象被读出来。以前我们在一个项目中碰到过这个问题。

后来只有增加DTO来解决这个问题。

GDS倒是支持hibernate、ejb的lazy load,不过好像在Flex这边要使用GDS定义的RemoteObject,所以也没有深入去测试。

很久没搞了,记不太清楚了。

使用Gilead可以避免DTO模式大量繁琐编码,请参考http://jinyongzhang.iteye.com/blog/361729
11 楼 matt.u 2009-04-18  
wills 写道
Hibernate是数据库操作层面的,Blazeds 其实是Flex与Java沟通的一个桥梁,它可以让Flex跟java进行无缝调用,至于提到Blazeds是否支持Lazy Load特性,这完全是两码事~


BlazeDS跟LazyLoad还是有些关系的。当你想把pojo对象传到Flex中时,BlazeDS对该pojo对象的所有属性进行遍历、组报(可能用“组报”表达不是黑准确),BlazeDS并不知道你的pojo对象哪些属性是lazyload,反正他会一直调用getXXX方法,结果导致N多关联对象被读出来。以前我们在一个项目中碰到过这个问题。

后来只有增加DTO来解决这个问题。

GDS倒是支持hibernate、ejb的lazy load,不过好像在Flex这边要使用GDS定义的RemoteObject,所以也没有深入去测试。

很久没搞了,记不太清楚了。
10 楼 天机老人 2009-02-25  
百年难得一见的好贴,我还是比较喜欢肯翻译的网友!
9 楼 ramus 2009-02-25  
饿.hibernate 是hibernate   flex是flex 

lazyload只是hibernate里面提供的一个功能.
8 楼 black.angel 2009-02-24  
总觉得什么东西都框架化了,越来越多的程序员都白痴化了.工资越来越农民化了.我还是好好看书,仔细补补基础.然后再耍框架.
7 楼 raymond2006k 2009-02-17  
楼上说的有理。
6 楼 wills 2009-01-15  
Hibernate是数据库操作层面的,Blazeds 其实是Flex与Java沟通的一个桥梁,它可以让Flex跟java进行无缝调用,至于提到Blazeds是否支持Lazy Load特性,这完全是两码事~
5 楼 may_cauc 2009-01-08  
Granite Data Services
http://www.graniteds.org/confluence/pages/viewpage.action?pageId=229378

这个据说支持hibernate 的lasy load。不过我没试过。
4 楼 qiuxiaoj 2008-11-03  
jinyongzhang 写道
BlazeDS目前还不支持Hibernate、EJB3等的Lazy Load特性,但已经有第三方解决方案,如dphibernate等。
可以参考以下资源:
1、http://code.google.com/p/dphibernate
2、http://onflash.org/ted/2008/09/360flex-sj-2008-flex-persistence-with.php

dphibernate是怎么一回事?会不会像hibernate使用一样方便!?
3 楼 jinyongzhang 2008-10-11  
BlazeDS目前还不支持Hibernate、EJB3等的Lazy Load特性,但已经有第三方解决方案,如dphibernate等。
可以参考以下资源:
1、http://code.google.com/p/dphibernate
2、http://onflash.org/ted/2008/09/360flex-sj-2008-flex-persistence-with.php
2 楼 hellboy 2008-10-09  
totong 写道
这个方案能不能在Flex里面使用hibernate的延迟加载?

关于flex使用hibernate,有ejb3的延迟加载有什么好的解决方案么?
1 楼 totong 2008-10-09  
这个方案能不能在Flex里面使用hibernate的延迟加载?

相关推荐

Global site tag (gtag.js) - Google Analytics