资源描述
Flex+Java开发指南
1. 开发环境
下面是开发所需软件的相应版本号,开发前需准备以下相应版本的软件。
软件
版本
备注
jdk
1.5
必须是1.5版本
weblogic
9.2
上线环境
tomcat
6.0
开发测试环境,安装目录必须是D:\javadev\tomcat6
oracle
10g
必须是10g
flex sdk
3.4
必须是3.4
myeclipse
6.0
6.0以上都可以
flexbuilder
3.0
必须是3.0
2. 下载工程
工程采用svn进行版本控制,因此你需要在myeclipse中安装svn插件。
svn插件安装完后你可以从http://10.10.21.136/svn/project上下载sdp(flex端工程) 、utmost
(java端工程).两个工程。
下图是两个工程目录结构图。
3. 配置文件介绍
web.xml文件主要包含spring、log4j、blazeds、字符编码过滤器、url参数过滤器、struts等相关配置。
config.properties文件是系统参数设置列表。数据库配置就包含在此文件中。
struts.xml是struts相关的配置。
applicationContext.xml文件主要是spring相关配置。
db-beans.xml是数据库相关配置。
jdbc-beans.xml是jdbctemplate相关配置。
beans.xml是struts相关bean的配置。
jms.xml是wenlogic的jms服务的相关配置。
dc.xml是直连相关的配置。
下面是blazeds的相关配置,路径为WEB-INF\flex
services-config.xml是blazeds的服务配置总文件。
remoting-config.xml是远程对象的配置。
messaging-config.xml是消息服务的配置。
4. 数据库介绍
表名
作用
备注
amc_base_user
用户表,保存用户的基本信息
amc_base_log
日志表,保存用户操作日志信息
amc_base_model
模块表,对应系统中的二级菜单
amc_base_group
用户组表。
一个组对应相应的角色code
amc_base_role
用户角色表
角色表中包含模块code,model_code是以逗号分隔连接起来的,因此需要在model_coded的开头和结尾都必须添加逗号(英文)
amc_base_datagrid
用户显示列信息表
添加一个模块的步骤如下:
ü 在flex builder下新建一个module。
ü 在amc_base_model中新添加一条记录。
ü 在amc_base_role中修改相应model_code。
5. 平台交互简介
utmost工程是服务器端开发工程,采用的框架主要是spring2.5+blazeds3.
tpl工程是客户端开发工程,与服务器进行交互的核心类是JdbcsService.as,该类主要用到的方法是callfunc。
。
public function callfunc(serviceName:String, methodName:String, hm:Object, resultHandler:Function, faultHandler:Function=null):void {
}
第一个参数是spring bean的id,
第二个参数是bean的方法名称,
第三个参数是方法的参数,
第四个参数是调用成功的处理函数,
第五个参数是调用失败的处理函数
一个简单的调用例子代码如下:
JdbcService.getInstance(true).callfunc(
"UserService",
"login",
obj,
loginSuc,
loginFault);
getInstance返回一个JdbcService实例,getInstance方法中的参数含义是:如果为true,在执行服务时会显示忙碌光标。
//得到JdbcService一个实例
public static function getInstance(bool:Boolean=true):JdbcService {
return new JdbcService(bool);
}
//JdbcServiced的初始化
public function JdbcService(bool:Boolean=true)
{
ro.channelSet=StaticChannelSet.getChannelSet("my-amf","messagebroker/amf");//
ro.destination="JdbcService";
。。。
}
JdbcService类初始化主要完成channelSet的设置,具体设置请参见StaticChannelSet.as类。
设置destination服务的目标。destination的配置信息路径为:
utmost\WebRoot\WEB-INF\flex\remoting-config.xml
JdbcService服务目标配置信息如下:
<destination id="JdbcService">
<properties>
<factory>spring</factory>
<source>JdbcService</source>
</properties>
</destination>
上面的factory表示blazeds创建bean对象由那个工厂来创建,这里配置为spring工厂。
bean实例化工厂的配置在services-config.xml文件中进行配置。
<factories>
<factory id="spring" class="org.utmost.flex.SpringFactory"/>
</factories>
下面来主要了解下服务器端的JdbcService.java类。
JdbcService类是与数据库进行交互的核心类。JdbcService类封装了DAO操作的相关方法。
JdbcService类的另外一个重要方法是callfunc,该方法对应flex端JdbcService.as中的callfunc
方法。
public Object callfunc(
String serviceName,
String methodName,
HashMap param) throws Exception
utmost中的bean的配置采用的是spring的注解方式。
@Service("UserService")
public class UserService {
}
上面的配置等同于:
<bean id="UserService" class=" com.amc.purview.UserService ">
</bean>
采用注解的方式大大简化了xml的配置。但是应该保证在整个系统中bean ID的唯一性,否则spring在实例化bean时会发生异常。解决该问题的一个思路是把bean的ID标记为类的全路径。
采用注解方式的还有事务的管理。
@Transactional(rollbackFor=Exception.class)
public String judgeAndTransfer(ASObject fileInfoAfter) throws Exception{
}
在一个方法的上面标记Transactional表明了这个方法要开启事务,rollbackFor表示事务回滚的条件,这里是所有异常即:Exception.class。
通过Flex调用的远程对象方法中的参数必须是ASObject,ASObject实现了map接口,因此只要知道一个key就可以得到key的value。
远程对象方法返回的结果最好是Map或者List。Java中的map转化为as3中的object,list转化为ArrayCollection。
展开阅读全文