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>
效果如下: