关于flex+spring+hibernate的问题
来源:互联网 发布:台式电脑无法连接网络 编辑:程序博客网 时间:2024/06/09 19:19
(转自:RIACHINA 中国RIA开发者论坛)
问:首先说,我怎么也没找到相关的文章或demo,如果哪位仁兄知道,请给个联结。当然了,如果是高手,请给指点一下,这个结构应该如何做好一些。
看了一些相关的东西,发现需要用as3在客户端建立VO,不知道这样做是否安全,请指教。
谢谢了
答:无需建立VO,AS是动态语言,对象可以动态的构建,需要什么就构建什么对象即可。比如服务器传来的是user对象的数据,那么你构造的时候new一个Object,直接可以把这个对象当作user来对待。
当然对于FLEX的框架设计来说,VO能更好的理解数据对象,并规范管理。
另外,关于你这三个框架完全可以当作普通的jsp(struts)+spring+hibernate来做,实际上RIA的思想是一种分布式的结构,展现层和逻辑还有po都是隔离的,服务器只需要最后给它结果,或者执行它的请求即可。因此之前jsp是什么架构,在这里把jsp换成flex即可。(由于服务端不再接管展现层,因此struts框架就是多余的了)
不过,由于两种语言数据不兼容,flex接收的实际上都是从服务器传回的序列化过的文本,比如XML或json,因此传统的页面跳转之类的都不存在,服务器端只需要专心的做业务层,把结果输出或者执行操作,如何组织显示,如何在页面跳转,在服务器端再也不用考虑,这恐怕是设计RIA服务器端和以往的最大不同
你要的demo的确找不到,如果你搜jsp+spring+hibernate肯定一大堆,因为这两个框架从服务器端来说没区别,只是展现层换了,在这个框架的基础上,你需要考虑如何把VO更简单的转换成序列化的文本输出即可(当然你也可以纯手工的在服务器端转换VO),从MVC的设计思想来看,服务器就应该是做这些工作的。
问:谢谢cimmicola了。 写的太好了,非常有用。 我还有个疑问就是如果说简单的用flex替换jsp的话,session该怎么做? 这个地方是不是一个区别之处。 还有就是如果真象官方上的example那样,建立一个.as文件里面包括 getuserId(), setuserId()什么的,然后用RemoteClass联结到一个java。这么做是不是不太安全, 至少是把数据库的table结构放到客户端了。请多多指教。谢谢了。
答:session目前没有官方的解决方案,通常做法就是请求服务器的session并保存为自己的一个对象。session一般都是不会改变的数据,比如登录用户的信息,设计session的原则尽量是不将业务数据存储进去,因为session 是比较耗资源的。
关键是在flex存储这个session对象,避免反复请求。
可以用shareObject存储起来,但是SO类似于cookie,是存在本地的,如果你的session有敏感数据需要在退出程序时清除SO里的数据。
比如:
so: SharedObject=SharedObject.getLocal("LocalData");
user:Object=....//你从服务器端取得的session
so.data.loginUser=user;
so.flush;
//在其他页面
trace(so.data.loginUser.name);
还有一种方法,利用类的生命周期,将服务器的session设置到一个类的静态属性,我们知道,静态属性是在类被构造时就会有值,而无需实例化这个对象,因此,这个值将是一个长存于内存的变量,即使你没有new这个类,直接取也是可以取得的。而且,由于没有java那样的垃圾回收器,这个类即使数据没有使用,也不会消失。
创建一个类
public class MySession{
private static var _data:Object=null;
public static function set data( data:Object){
_data=data;
}
public static function get data():Object{
return _data;
}
}
设置MySession.data.loginUser=.....;
AS是动态语言,即使我的MySession类的data属性里,并没有声明什么结构,也不存在loginUser这个属性,但是会自动构造。
另一个问题,如果你觉得这样不安全,你可以不这么做,但是可以肯定的是,数据在某种层次上说,都是透明的,且VO并不等于是数据库结构。我的项目里FLEX都没有VO,我不喜欢在客户端再来映射一次VO,这样让我觉得很烦琐,展现层应该关注的是用户体验和数据展现,他只需要被告知数据结果。至于数据VO,它应该是持久层的东西。我觉得动态语言灵活性是可以好好利用的。
- 关于flex+spring+hibernate的问题
- 关于Flex和后台通讯问题(基于Spring,Hibernate的开发)
- 关于flex和spring+hibernate整合web.xml的错误
- flex 整合spring,hibernate遇到的一些问题
- 关于hibernate+spring+sqlserver2000的问题!
- 关于spring+struts+hibernate集成的问题
- 关于spring+hibernate整合的一些问题
- Flex整合Spring+hibernate问题集锦
- Spring+Hibernate整合时关于Hibernate事务管理的问题
- FLEX和spring、hibernate的集成
- FLEX与SPRING HIBERNATE 的配置应用
- 关于Struts、Spring和Hibernate整合的问题
- 关于Maven 使用Spring+Hibernate+JPA的问题
- 关于spring整合hibernate自动创建数据表的问题
- Spring整合hibernate关于控制事务的问题
- flex java spring hibernate
- 关于spring hibernate的事务管理
- 关于spring+hibernate中的单元测试问题
- [转载]: VB编程语言历史
- Shield Deluxe 2009:Number 1 Antivirus
- sharepoint 网站操作屏蔽
- Groovy 1.6的新特性
- mkimage使用详解
- 关于flex+spring+hibernate的问题
- WIndow mobile 6 SDK 下载
- 端口映射与UPnP
- java 调用 Web Service
- c assert 用法
- 配置Hibernate连接池
- 征集佳句-精妙SQL语句收集
- 保护视力的小工具 更新到1.6版
- 摄氏度转为华氏度的计算方法