- 浏览: 7932847 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
近来flex盛行,因此这两天也借了本书看了两天,发觉作为非页面设计人员,flex 还是很好的,flex builder很好用,拖拉就有很COOL的界面了,而且flex总的来说基本东西不难学,有编程基础的人很快掌握,当然要精通就要时间了,因为库,API等很多.
下面就flex3+blazeds+spring+hibernate整合作个小结,是之前读外国好文的心得,而见国内这方面的文比较少,因此笔记之.
首先要知道,flex3是做前端的,其实就是view层的东西了,可以替换掉struts 2,如果项目中你喜欢的话.而blazeds是adobe免费的转换网关(可以理解成转换网关),负责把后端的数据与actionscript进行转换,当然也可以用
收费的那个livecycle data services了.而spring+hiberate的组合很传统了.
1 准备好东西
A 下载blazeds,这里下载blazeds_turnkey_3-0-0-544的版本,因为自带了tomcat还有些好的例子
B FLEXBUILDER 3
C MYSQL 5
D SPRING+HIBERNATE,myeclipse,这些就不说了.
2 本文是根据http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=7923
去小结的.其中在http://www.adobe.com/devnet/livecycle/articles/blazeds_spring.html中,讨论了如何跟spring结合,如何跟
hsqldb结合.那么文中是举了blazeds自带的例子来做说明的,在它的基础上进行修改,变成hibernate+spring.
3 先从http://download.macromedia.com/pub/developer/flex_spring.zip下载例子文件,其中包括了例子和作者写的
用spring调用的组件.
解压flex-spring.zip
将/flex-spring/factory/bin/flex/samples/factories 目录下的class文件拷贝到/WEB-INF/classes/flex/samples/factories目录中
4 在/WEB-INF/flex/services-config.xml文件中注册spring factory
<factories>
<factory id="spring" class="flex.samples.factories.SpringFactory"/>
</factories>
5 配置web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener </listener-class>
</listener>
6 在下载的程序中,我们重点关注samples\store这个目录下的程序.
其中flex目录是写好了的flex界面了,大家可以用flexbuilder去看.
而java目录其实就是后端的目录.无非就是用spring来实现对product对象的增,删改.
7 我们先用mysql 5在建立数据库 flexhibernate,表结构如下:
CREATE TABLE `product` (
`productId` int(11) NOT NULL auto_increment,
`name` varchar(40) NOT NULL,
`category` varchar(40) NOT NULL,
`image` varchar(255) NOT NULL,
`price` double NOT NULL,
`description` varchar(255) NOT NULL,
`qtyInStock` int(20) NOT NULL,
KEY `productId` (`productId`)
)
8 ,我们编写一个product.hbm.xml如下,放在samples\store\java目录下
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"[]>
<hibernate-mapping package="flex.samples.spring.store">
<class name="Product" table="PRODUCT">
<id name="productId" type="long" column="PRODUCTID"
unsaved-value="0">
<generator class="identity" />
</id>
<property name="name" column="NAME" length="40" />
<property name="category" column="CATEGORY" length="40" />
<property name="image" column="IMAGE" length="40" />
<property name="price" column="PRICE" type="double" />
<property name="description" column="DESCRIPTION" length="255" />
<property name="qtyInStock" column="QTYINSTOCK"
type="integer" />
</class>
</hibernate-mapping>
9 编写applicationContext.xml,注意要放在blazeds_turnkey_3-0-0-544\tomcat\webapps\blazeds\WEB-INF下
内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/flexhibernate" />
<property name="username" value="root" />
<property name="password" value="abc" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="mappingResources">
<list>
<value>flex/samples/spring/store/Product.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.HSQLDialect
</prop>
</props>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="productDAOBeanTarget"
class="flex.samples.spring.store.HibernateProductDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="productDAOBean"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="txManager" />
<property name="target" ref="productDAOBeanTarget" />
<property name="transactionAttributes">
<props>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
</beans>
很典型的传统spring+hibernate的配置了.
10 修改blazeds_turnkey_3-0-0-544\tomcat\webapps\blazeds\WEB-INF\flex目录下的
remoting-config.xml文件,增加如下部分:
<destination id="productService">
<properties>
<factory>spring</factory>
<source>productDAOBean</source>
</properties>
</destination>
11 准备spring,hibernate,mysqljdbc等驱动包,可以先放在blazeds_turnkey_3-0-0-544\tomcat\webapps\blazeds\WEB-INF\lib下,
当然也可以通过下面写ANT文件去指定,道理都是一样的.注意我用的是spring 1.2.8的包,2.0X的还没试过,各位可以试下.
12 可以看到,原文作者在sample\store目录下,有个build.xml,但其中因为我是windows下的,所以修改了路径符号为\,
如下
<?xml version="1.0" encoding="utf-8"?>
<project name="Store Application" basedir="." default="main">
<property name="FLEX_HOME" value="C:\Program Files\Adobe\Flex Builder 3\sdks\3.1.0"/>
<property name="DEPLOY_DIR" value="L:\blazeds_turnkey_3-0-0-544\tomcat\webapps\blazeds"/>
<property name="CONTEXT_ROOT" value="blazeds"/>
<property name="lib.dir" value="L:\blazeds_turnkey_3-0-0-544\tomcat\webapps\blazeds\WEB-INF\lib"/>
<path id="classpath">
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
</path>
<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}\ant\flexTasks.jar" />
<target name="main" depends="compile-flex,html-wrapper,compile-java"/>
<target name="compile-flex">
<mxmlc file="flex/storeadmin.mxml"
services="${DEPLOY_DIR}\WEB-INF\flex\services-config.xml"
context-root="${CONTEXT_ROOT}"
output="${DEPLOY_DIR}\storeadmin\storeadmin.swf"/>
<mxmlc file="flex/store.mxml"
services="${DEPLOY_DIR}/WEB-INF\flex\services-config.xml"
context-root="${CONTEXT_ROOT}"
output="${DEPLOY_DIR}\store\store.swf"/>
<copy todir="${DEPLOY_DIR}\store\pic">
<fileset dir="flex\pic"/>
</copy>
</target>
<target name="compile-java">
<javac srcdir="java" destdir="${DEPLOY_DIR}\WEB-INF\classes">
<classpath refid="classpath"/>
</javac>
<copy todir="${DEPLOY_DIR}/WEB-INF/classes/flex/samples/spring/store">
<fileset dir="java" includes="**/*hbm.xml"/>
</copy>
</target>
<target name="html-wrapper">
<html-wrapper
application="app"
width="100%"
height="100%"
swf="storeadmin"
version-major="9"
version-minor="0"
version-revision="0"
history="true"
template="express-installation"
output="${DEPLOY_DIR}\storeadmin"/>
<html-wrapper
application="app"
width="100%"
height="100%"
swf="store"
version-major="9"
version-minor="0"
version-revision="0"
history="true"
template="express-installation"
output="${DEPLOY_DIR}\store"/>
</target>
</project>
要注意的是,因为flex 3的ant扩展了ant,因此,要保证Adobe\Flex Builder 3\sdks\3.1.0\ant下有文件flexTasks.jar,
也要把flexTasks.jar COPY到ant的目录下去.
之后就可以在sample\store根目录下,运行ant打包运行了.
13 之后启动tomcat,运行
http://localhost:8400/blazeds/store/index.html
和 http://localhost:8400/blazeds/storeadmin/index.html,
就可以看到效果了.
14 简单分析其调用过程
把其中一个flex文件打开,比如
<Product id="product"
name="{productName.text}"
category="{category.text}"
price="{Number(price.text)}"
qtyInStock="{int(qtyInStock.text)}"
image="{image.text}"
description="{description.text}"/>
<mx:RemoteObject id="srv" destination="productService"/>
<mx:Form width="100%">
<mx:FormItem label="Name">
<mx:TextInput id="productName" text="{product.name}"/>
</mx:FormItem>
<mx:FormItem label="Category">
<mx:TextInput id="category" text="{product.category}"/>
</mx:FormItem>
<mx:FormItem label="Image">
<mx:TextInput id="image" text="{product.image}"/>
</mx:FormItem>
<mx:FormItem label="Price">
<mx:TextInput id="price" text="{product.price}"/>
</mx:FormItem>
<mx:FormItem label="In Stock">
<mx:TextInput id="qtyInStock" text="{product.qtyInStock}"/>
</mx:FormItem>
<mx:FormItem label="Description" width="100%">
<mx:TextArea id="description" text="{product.description}" width="100%" height="100"/>
</mx:FormItem>
</mx:Form>
<mx:ControlBar>
<mx:Button label="Update" click="srv.updateProduct(product)"/>
</mx:ControlBar>
其中,关注<mx:Button label="Update" click="srv.updateProduct(product)"/>,这里,就是调用srv的updateProduct(product)了,
其中,srv是一个 <mx:RemoteObject id="srv" destination="productService"/>,destination="productService"是什么?
就是第10步中指定的那个productService了,呵呵,应该大致明白了吧?
发表评论
-
(转)Flex与JavaScript的交互:调用JavaScipt或者被JavaScript调用
2013-06-21 12:44 1245一、在JavaScript中调用Flex方法 在Flex中可以 ... -
FLEX 4.5中启动失败的修改
2011-06-11 07:48 3396装了flex builder 4.5后,启动的时候,说出错: ... -
flex4里的双向数据绑定
2010-08-20 20:57 3945在flex3中,对于绑定可以这样: <TextInput ... -
flex 4里一个传统的闪烁效果
2010-08-18 23:34 4692flex 4里一个传统的闪烁效果,笔记如下: <?xml ... -
flex跟blazeds结合时要注意的地方
2010-06-30 16:52 1892在用MYECLIPSE+FLEXBUILDER插件,做JA ... -
flex小结12
2010-02-01 14:02 20931 richtexteditor控件 import mx. ... -
flex小结11
2010-01-30 00:38 19811 advanceddatagrid中的分组grouping应 ... -
flex小结10
2010-01-29 12:38 16941 在viewstack的导航中,如果用代码来切换选项卡时,可 ... -
flex小结9
2010-01-24 19:17 16251 FLASH调用webservice: <!--引 ... -
flex学习小结8
2010-01-23 19:37 17331 饼状图 import mx.colle ... -
flex学习小结5
2010-01-21 21:56 16561 调用module 新建一个module: <m ... -
flex学习小结3
2010-01-17 11:22 2085flex小结3 1 TIMER类的应用 //创建一 ... -
flex中的动态实现remoteobject
2010-01-11 22:05 2379在flex中,一般直接在设计时写remoteobject的话, ...
相关推荐
标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate.doc”指的是一项整合了多种技术的Web应用开发方案,这些技术包括PureMVC、Flex、BlazeDS、Spring和Hibernate。这篇文档可能是指导读者如何将这些技术结合在一起...
Flex4+Blazeds4.0+Spring3.0+hibernate2.5.2整合笔记 本篇笔记主要介绍了如何将 Flex4、Blazeds4.0、Spring3.0 和 hibernate2.5.2 进行整合,实现一个完整的富互联网应用程序。下面是对笔记中关键部分的详细解释: ...
Myeclipse6.5+flex3+Blazeds+spring+hibernate完美整合,写的非常详细
使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·
本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...
【标题】"Flex4.X+BlazeDS+Spring3实战开发在线书店四"涉及的核心技术栈是Adobe Flex 4.6、BlazeDS、Spring 3框架以及Java相关的JPA和Hibernate,配合MySQL数据库实现一个在线书店的完整系统。下面将详细阐述这些...
在“Flex4+BlazeDS+Spring+Hibernate 整合源码”中,开发者可能实现了以下功能: 1. 使用Flex4创建前端用户界面,包括自定义组件和动画效果。 2. 通过BlazeDS配置,实现在Flex客户端与Spring服务层之间的数据双向...
总结一下,"Myeclipse6.5+flex3+Blazeds+spring+hibernate完美整合源代码"代表了一个完整的、成熟的开发解决方案,它结合了现代Web开发的多个关键组件,提供了从前端用户界面到后端数据存储的全面支持。配合相应的...
Flex+Gilead+BlazeDS+Spring+Hibernate示例Demo,使用1:n和m:n两个双向关系,很好的演示了Gilead的Hibernate Lazy Killer特性,借助Gilead可以有效规避DTO模式的大量繁琐代码。效果图展示地址:...
根据提供的文件信息,本文将详细介绍如何一步步搭建PureMVC+Flex+BlazeDS+Spring+Hibernate的技术栈。这个过程涉及到了多个技术领域的整合,包括前端的Flex开发、后端的Java开发以及数据库交互等多个方面。 ### 一...
标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate”是一个常见的技术栈组合,用于构建企业级的 Rich Internet Applications (RIA)。这个技术栈包括前端开发框架、后端服务通讯、应用服务器、服务端架构和数据持久化...
综上所述,这个在线书店的开发实例结合了Flex 4.6的富用户体验、BlazeDS的数据通信能力、Spring 3的依赖注入和业务管理、JPA的持久化机制以及Hibernate和MySQL的数据库支持。通过学习和实践这个项目,你将能够掌握...
本文将带你逐步构建一个基于PureMVC、Flex、BlazeDS、Spring和Hibernate的完整应用程序。这是一个典型的 Rich Internet Application (RIA) 解决方案,旨在实现前后端的数据交互和业务逻辑处理。 首先,你需要准备和...
为了搭建一个基于PureMVC、Flex、BlazeDS、Spring和Hibernate的项目,我们需要遵循一系列详细的步骤,这些步骤涉及到安装和配置不同的软件组件、创建项目以及集成各个框架。下面是这个过程的知识点总结: 一、软件...
在IT行业中,构建高效、可扩展的企业级应用是至关重要的,而"flex4+spring3+struts2+hibernate3+blazeds整合实例"是一个典型的Java Web开发架构,它结合了前端的Flex技术和后端的SSH(Spring、Struts2、Hibernate)...
Flex4、BlazeDS、Spring和Hibernate是四个在IT领域中关键的技术组件,它们的集成为构建高效、灵活且功能丰富的Web应用程序提供了强大的基础。下面将详细解释这些技术及其集成方式。 **Flex4** 是Adobe Flex框架的一...
《Flex+Java+Spring+Hibernate+BlazeDS整合详解》 在现代的Web开发中,Flex作为客户端的富互联网应用程序(RIA)框架,与Java、Spring、Hibernate等后端技术结合,可以构建出高效、交互性强的Web应用。本文将详细...
Flex+BlazeDS+Spring+Hibernate 是一个经典的前端与后端集成方案,广泛应用于构建富互联网应用程序(Rich Internet Applications,RIA)。在这个框架组合中,Flex 作为用户界面层,提供了丰富的交互体验;BlazeDS ...
《Flex4.X+BlazeDS+Spring3 实战开发在线书店》是一门深入探讨使用Adobe Flex 4.6、BlazeDS、Spring 3框架以及Java相关技术进行Web应用程序开发的课程。这门课程旨在帮助开发者掌握如何构建功能丰富的、交互性强的...