- 浏览: 107114 次
- 性别:
- 来自: 北京
文章分类
最新评论
MyEclipse6.5+MySQL5.5+flex3.0+spring2.5+hibernate3.2
新建Flex项目:
Project name:项目名(自己随便起名) Application server type:后台应用程序选择J2EE Java source folder:java文件要放的位置 点击Next——>
Target runtime:选择服务器
Flex WAR file:选择Flex与java通讯的BlazeDS.war文件(此处必须是3.2版本及以上,否则无法与spring结合)
Output folder:存放输出文件
点击Next——>
Output folder URL:访问路径,8585端口号要与你的Tomcat端口号一致
点击Finish。Flex工程创建完成。
在Flex工程基础上添加web应用:
选中firstFSH项目,右键——>MyEclipse——>Add Web Project Capabilities…——>
Create web.xml问你是否创建web.xml,由于创建flex工程时已经有web.xml所以现不再创建,J2EE版本选择5.0
点击Finish,这时firstFSH工程会出现两个小地球,Flex与java结合完毕。
选中firstFSH项目,右键——>Properties——>Flex Server——>
Root URL:改成http://localhost:8585
Context root:改成/firstFSH
(注意:如果出错,点击Validate Location即可。)
点击OK。
测试Flex与Java能否正常的进行通讯。
在firstFSH工程下的src包下创建com.fsh.test.HelloWorld类
package com.fsh.test;
public class HelloWorld {
public String sayHelloTo(String name) {
System.out.println("****** Flex+java通讯成功 *****");
return "Hello "+name+" !" ;
}
}
修改remoting-config.xml文件,加入如下代码
remoting-config.xml:
<destination id="hello">
<properties>
<source>com.fsh.test.HelloWorld</source>
<scope>application</scope>
</properties>
</destination>
编写firstFSH.mxml页面文件,代码如下
firstFSH.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert ;
private function sayHelloTo():void {
say.addEventListener(ResultEvent.RESULT, getResultHandler) ;
say.sayHelloTo("张三") ;
}
private function getResultHandler(evt:ResultEvent):void {
say.removeEventListener(ResultEvent.RESULT, getResultHandler) ;
if(evt.result != null) {
Alert.show(evt.result.toString()) ;
} else {
Alert.show("Exception") ;
}
}
]]>
</mx:Script>
<mx:RemoteObject id="say" destination="hello" />
<mx:Panel x="338" y="83" width="578" height="391" layout="absolute">
<mx:HBox x="10" y="10" width="100%">
<mx:Button label="测试Flex与Java通讯" width="170" fontSize="13" click="sayHelloTo() ;"/>
</mx:HBox>
</mx:Panel>
</mx:Application>
右键选中firstFSH工程——>Run As(运行)——>
Flex3.0与Java5.5结合成功,可以正常通讯
加入Spring2.5
右键选中firstFSH工程——>MyEclipse——>Add Spring Capabilities…——>
选中Spring2.5
选中红框内的5个选项
选中Copy checked Library contents to project folder (TLDs always copied)
点击Next——>
选中Finish,Spring2.5加载完毕。
现测试Spring2.5加载的是否正确
在src下建立com.fsh.common.factory包,将附件中的SpringFactory.java工厂类放入该包下
在web.xml中加载Spring管理
web.xml:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
在与remoting-config.xml并列的service-config.xml文件中加入如下代码
services-config.xml:
<factories>
<factory id="spring" class="com.wingo.myfirstfsh.common.SpringFactory"/>
</factories>
在remoting-config.xml文件中加入如下代码
remoting-config.xml:
<destination id="hello">
<properties>
<factory>spring</factory>
<source>helloWorld</source>
</properties>
</destination>
运行项目——>
此时Flex3.0+Spring2.5配置完成。
在Mysql5.5下创建t_user表字段如下
添加两条数据
在MyEclipse右上角切换视图——>MyEclipse Database Explorer——>新建数据库连接 在DB Browser空白处右键——>New——>
Driver template:选择你选应用的数据库
Driver name:随便起名称
Connection URL:数据库连接,user_db是你的数据库名称
Add JARs:添加数据库连接所需的驱动包(附件中有)
此时可以点击Test Driver进行测试连接是否成功
点击Finish,会生成一个aaa连接对象,如下图aaa。
将视图切换回Flex Development
右键选中firstFSH工程——>Add Hibernate Capabilities…——>
选中Hibernate3.2
选中红框中的两项MyEclipse Libraries
选中Copy checked Library Jars to project folder and add to build-path
点击Next——>
选中Spring configuration file (applicationContext.xml)管理(因为前面已经加入Spring)
点击Next——>
选中Existing Spring configuration file(因为项目中已经存在applicationContext.xml文件,所以此处不需要新建该文件)
SessionFactory Id:输入Session工厂ID属性
点击Next——>
Bean Id:数据库连接ID
DB Driver:选择你刚刚建立的数据库连接对象
点击Next——>
勾去Create SessionFactory class(交给Spring管理)
点击Finish
在firstFSH工程下创建dao、po包,具体如下
切换数据库连接视图
右键选中t_user表——> Add Hibernate Capabilities——>
点击Next——>
Id Generator:主键发生器,选中native本地
点击Finish,Hibernate加载完毕。
现进行测试Hibernate加载的是否正确以及Flex+Spring+Hibernate是否成功
调整java端代码结构
将po包下的TUserDAO放到dao.impl包下,同时修改applicationContext.xml中的TUserDAO做出修改
在dao包下创建IUserDAO接口
点击Finish——>如下
在上述接口中加入public List<TUser> findAll() 抽象方法
同时修改dao.impl.TUserDAO实现IUserDAO接口
在com.fsh.service包下加入IUserService接口,在com.fsh.service.impl包下加入UserServiceImpl类实现IuserService接口
IUserService接口:
package com.fsh.service;
import java.util.List;
import com.fsh.po.TUser;
public interface IUserService {
public List<TUser> findAll() ;
}
UserServiceImpl实现类:
package com.fsh.service.impl;
import java.util.List;
import com.fsh.dao.IUserDAO;
import com.fsh.po.TUser;
import com.fsh.service.IUserService;
public class UserServiceImpl implements IUserService{
private IUserDAO iuserDao ;
public IUserDAO getIuserDao() {
return iuserDao;
}
public void setIuserDao(IUserDAO iuserDao) {
this.iuserDao = iuserDao;
}
public List<TUser> findAll() {
// TODO Auto-generated method stub
return this.iuserDao.findAll();
}
}
在applicationContext.xml加入以下代码
<bean id="userService" class="com.fsh.service.impl.UserServiceImpl">
<property name="iuserDao">
<ref local="TUserDAO"/>
</property>
</bean>
在Remoting-config.xml加入以下代码
<destination id="userService">
<properties>
<factory>spring</factory>
<source>userService</source>
</properties>
</destination>
为以后的维护和代码结构整洁,现将flex端做出如下的MVC调整:
按照下图在flex_src包下建立control.UserCtrl、events.UserEvent、model.UserModel、vo.UserVO四个AS类
UserVO.as视图VO类,与Java端po.TUser类对应:
package vo
{
[Bindable]
public class UserVO
{
public var num:Number; //序号
public var uid:int;
public var uname:String;
public var upassword:String;
public var usex:String;
public var uage:int;
public function fill(obj:Object):void{
for(var i:* in obj){
this[i]=obj[i];
}
}
}
}
UserEvent.as自定义事件类:
package events
{
public class UserEvent
{
public static const showSucs:String = "showSucs" ;
public static const showFail:String = "showFail" ;
}
}
UserModel.as主要用来绑定视图VO对象:
package model
{
import flash.events.EventDispatcher;
import mx.collections.ArrayCollection;
[Bindable]
public class UserModel extends EventDispatcher {
private static var _userModel:UserModel;
public static function getInstance():UserModel {
if(_userModel == null) {
_userModel = new UserModel() ;
}
return _userModel ;
}
public var userList:ArrayCollection ;
}
}
UserCtrl.as控制层:
package control
{
import vo.UserVO;
import events.UserEvent;
import flash.events.Event;
import model.UserModel;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.remoting.RemoteObject;
import mx.managers.CursorManager;
public class UserCtrl
{
private var _userService:RemoteObject = null ;
private var _userModel:UserModel = UserModel.getInstance() ;
public function UserCtrl()
{
_userService = new RemoteObject() ;
_userService.destination = "userService" ;
_userService.addEventListener(FaultEvent.FAULT, faultHandler) ;
}
private function faultHandler(evt:FaultEvent):void {
Alert.show(evt.fault.toString()) ;
}
public function findAll():void {
_userService.findAll.addEventListener(ResultEvent.RESULT, resultHandler) ;
_userService.findAll.send() ;
CursorManager.setBusyCursor();
}
private function resultHandler(evt:ResultEvent):void {
if(evt.result != null) {
this.getUserListResult(evt.result) ;
} else {
_userModel.dispatchEvent(new Event(UserEvent.showFail));
}
CursorManager.removeBusyCursor();
_userService.removeEventListener(ResultEvent.RESULT, resultHandler) ;
}
private function getUserListResult(datas:Object):void {
var info:ArrayCollection = new ArrayCollection() ;
for(var i:Object in datas) {
var uvo:UserVO = new UserVO() ;
uvo.num = Number(i)+1 ;
uvo.fill(datas[i]) ;
info.addItem(uvo) ;
}
_userModel.userList = info ;
_userModel.dispatchEvent(new Event(UserEvent.showSucs));
}
}
}
修改firstFSH.mxml类,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import events.UserEvent;
import model.UserModel;
import control.UserCtrl;
import mx.collections.ArrayCollection;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert ;
private var _theUserCtrl:UserCtrl = new UserCtrl();
[Bindable]
private var _theUserModel:UserModel = UserModel.getInstance();
private function sayHelloTo():void {
say.addEventListener(ResultEvent.RESULT, getResultHandler) ;
say.sayHelloTo("张三") ;
}
private function getResultHandler(evt:ResultEvent):void {
say.removeEventListener(ResultEvent.RESULT, getResultHandler) ;
if(evt.result != null) {
Alert.show(evt.result.toString()) ;
} else {
Alert.show("Exception") ;
}
}
private function findAll():void {
_theUserModel.addEventListener(UserEvent.showSucs, resultHandler) ;
_theUserModel.addEventListener(UserEvent.showFail, resultHandler) ;
_theUserCtrl.findAll();
}
private function resultHandler(evt:Event):void {
_theUserModel.removeEventListener(UserEvent.showSucs,resultHandler) ;
_theUserModel.removeEventListener(UserEvent.showFail,resultHandler) ;
if(evt.type == UserEvent.showSucs) {
userList_dg.dataProvider = _theUserModel.userList ;
} else if(evt.type == UserEvent.showFail) {
Alert.show("ERROR") ;
}
}
private function doClear():void {
userList_dg.dataProvider = _theUserModel.userList = null ;
}
]]>
</mx:Script>
<mx:RemoteObject id="say" destination="hello" />
<mx:Panel x="338" y="83" width="578" height="391" layout="absolute">
<mx:HBox x="10" y="10" width="100%">
<mx:Button label="测试Flex与Java通讯" width="170" fontSize="13" click="sayHelloTo() ;"/>
</mx:HBox>
<mx:HBox x="10" y="44" width="100%">
<mx:Button label="查看" id="showUser" click="findAll() ;" fontSize="12" width="102"/>
<mx:Button label="清空" click="doClear() ;" fontSize="12" width="108"/>
</mx:HBox>
<mx:HBox width="100%" x="10" y="72">
<mx:DataGrid textAlign="center" fontWeight="bold" fontSize="12" id="userList_dg">
<mx:columns>
<mx:DataGridColumn headerText="序 号" dataField="num"/>
<mx:DataGridColumn headerText="姓 名" dataField="uname"/>
<mx:DataGridColumn headerText="性 别" dataField="usex"/>
<mx:DataGridColumn headerText="年 龄" dataField="uage"/>
</mx:columns>
</mx:DataGrid>
</mx:HBox>
</mx:Panel>
</mx:Application>
工程运行——>
出现上述错误的解决办法:
在applicationContext.xml中的<beans>头里加入如下代码即可
default-autowire="byName" default-lazy-init="true"
再运行——>
出现上述异常是由于spring与Hibernate的asm.jar包冲突造成的
解决办法:
将删除工程WEB-INF/lib下的asm-2.2.3.jar包,刷新项目,重启tomcat
再运行——>
至此flex3.0+spring2.5+hibernate3.2配置完成!
- mysql-connector-java-5.1.7-bin.jar (693.3 KB)
- 下载次数: 1
- blazeds.war (4.3 MB)
- 下载次数: 2
- SpringFactory.rar (2 KB)
- 下载次数: 1
- flex3.0_spring2.5_hibernate3.2.rar (734.8 KB)
- 下载次数: 2
相关推荐
hibernate3.2+spring2.5+flex3.0整合框架,自己搭建的,可供学习之用,该框架的搭建环境是在myeclipse6.5下,还有就是因为上传文件的大不限制,只好分两部分下,请见谅!
hibernate3.2+spring2.5+flex3.0整合框架,自己搭建的,可供学习之用,该框架的搭建环境是在myeclipse6.5下,还有就是因为上传文件的大不限制,只好分两部分下,请见谅!
Flex4、Spring3.0和Hibernate2.5是三个在Web开发中广泛应用的技术框架,它们分别专注于用户界面、服务层管理和持久化数据。这个实例代码是将这三个框架整合在一起,用于实现一个班级管理系统的功能,包括学生信息的...
标题中的"FLEX4+Gilead+BlazeDS+pureMVC+spring2.5 MVC+hibernate3.3+SLF4J+CXF2.3.0"涉及了多个关键技术和框架,这些都是在构建分布式、企业级Web应用程序时常用的技术组件。下面将逐一解析这些技术的核心概念和...
在本项目中,"spring3.0+hibernate3.2+blazeDS4+flex3.2" 是一个集成开发环境,旨在构建高效、解耦的Web应用程序。这个组合利用了Spring 3.0作为核心框架,Hibernate 3.2作为对象关系映射(ORM)解决方案,BlazeDS 4...
《Flex+Spring 2.5 整合技术详解》 在现代软件开发中,前端界面的交互性和后端服务的灵活性是提升用户体验的关键。Flex,作为Adobe开发的富互联网应用程序(RIA)框架,以其强大的图形界面设计能力和丰富的用户体验...
Flex4+Blazeds4.0+Spring3.0+hibernate2.5.2整合笔记 本篇笔记主要介绍了如何将 Flex4、Blazeds4.0、Spring3.0 和 hibernate2.5.2 进行整合,实现一个完整的富互联网应用程序。下面是对笔记中关键部分的详细解释: ...
标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate.doc”指的是一项整合了多种技术的Web应用开发方案,这些技术包括PureMVC、Flex、BlazeDS、Spring和Hibernate。这篇文档可能是指导读者如何将这些技术结合在一起...
本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...
使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·
Myeclipse6.5+flex3+Blazeds+spring+hibernate完美整合,写的非常详细
在本文中,我们将探讨如何使用Myeclipse10搭建Flex4.6、Spring3.0和Mybatis3.2的架构。这个架构是企业级开发中常见的技术组合,它允许开发者构建高性能、可扩展且易于维护的富互联网应用程序(RIA)。 1. **Flex4.6...
【集成Flex3+BlazeDS3.2+Spring2.5.6的另一种方式】\n\n在上一讲中,我们介绍了如何将Flex3、BlazeDS3.2和Spring2.5.6集成在一起,构建一个强大的WEB项目。本讲我们将探讨集成方式二,该方法采用Spring的侦听配置...
Flex 3.0 和 Flash 是 Adobe 公司在 Web 开发领域的两个重要工具,它们结合使用可以构建富互联网应用程序(RIA)。本资源包含了 Flex 3.0 与 Flash 集成开发的源代码示例,对于理解两者如何协同工作以及深入学习 RIA...
本文将详细介绍如何在MyEclipse7.5环境下整合Flex4、Spring、Struts、Hibernate以及Blazeds,构建一个强大的企业级Web应用。这个整合涉及到的技术栈广泛,旨在提供一个灵活且功能丰富的前后端交互解决方案。 1. **...
Flex+Spring+Hibernate示例是一种常见的企业级应用架构,它结合了Adobe Flex前端技术、Spring后端框架和Hibernate持久层框架,以构建高效、灵活且易于维护的Web应用程序。在这个示例中,开发者可能已经展示了如何...
在IT行业中,构建高效、可扩展的企业级应用是一项复杂任务,而"Flex pureMVC blazeDS j2ee Spring3.0+Hibernate3.0"这个主题涵盖了前端开发、后端架构以及数据持久化等多个关键领域。下面将详细介绍这些技术及其在...
Flex4、BlazeDS、Spring和Hibernate是四个在IT领域中关键的技术组件,它们分别代表了富互联网应用程序(RIA)的开发、实时数据传输、依赖注入和持久化框架。这篇源码整合旨在展示如何将这些技术有效地融合在一起,...
Flex+Spring+Hibernate 整合是企业级应用开发中常见的一种技术栈组合,它结合了Flex前端的富互联网应用程序(RIA)开发能力、Spring框架的依赖注入和事务管理功能,以及Hibernate持久化框架的数据库操作便捷性。...