Flex4+BlazeDS+Spring+Hibernate 整合
1.在FlexBuilder+MyEclipse整合环境中创建一个Web项目和一个Flex项目
web项目的名称为t1,flex项目用默认模板
2.在web项目中添加blazeDs,将blazeDs.war解压后将[META-INF]和[WEB-INF]复制到t1->webroot目录
3.修改flex项目的相关属性如下图:
4.web项目中添加Spring支持和Hibernate支持,并配置相关配置,此处省略
Spring装配方式使用扫包自动装配
相关目录:
com.haha.bean --hibernate实体类和hbm配置文件
com.haha.dao --dao层代码
com.haha.biz --业务层代码,也是flex调用代码
5.整合blazeDs和Spring
5.1 先从http://download.macromedia.com/pub/developer/flex_spring.zip下载例子文件,将
flex.samples.factories.SpringFactory复制到web项目的src目录中
5.2 在/WEB-INF/flex/services-config.xml文件中注册spring factory
<factories>
<factory id="spring" class="flex.samples.factories.SpringFactory"/>
</factories>
6.示例
6.1添加UserRoles实体
package com.haha.dao;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;
import com.haha.bean.Userroles;
@Repository
public class UserRoleDao extends HibernateDaoSupport {
public List<Userroles> findAll(){
return this.getHibernateTemplate().find("from Userroles");
}
}
6.2编写UserRoleDao类
package com.haha.biz;
import java.util.List;
import org.springframework.stereotype.Service;
import com.haha.bean.Userroles;
import com.haha.dao.UserRoleDao;
@Service
public class UserRoleBiz {
private UserRoleDao userRoleDao;
public void setUserRoleDao(UserRoleDao userRoleDao) {
this.userRoleDao = userRoleDao;
}
public List<Userroles> findAll(){
return userRoleDao.findAll();
}
}
6.3编写FLex项目代码如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
applicationComplete="application1_applicationCompleteHandler(event)"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.events.*;
import mx.rpc.events.*;
import mx.rpc.remoting.*;
protected function application1_applicationCompleteHandler(event:FlexEvent):void
{
var ro:RemoteObject=new RemoteObject("userRoleBiz");
var opt:Operation=ro.getOperation("findAll") as Operation;
opt.addEventListener(ResultEvent.RESULT,function(e:ResultEvent):void{
dg1.dataProvider=e.result;
});
opt.send();
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<mx:DataGrid x="10" y="114" width="458" height="219" id="dg1">
</mx:DataGrid>
</s:Application>
效果如下:
源码路径:
http://download.csdn.net/detail/lijun7788/4900355