`
牧羊人
  • 浏览: 213579 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

blazeds与spring的结合使用

    博客分类:
  • flex
阅读更多
1.什么是spring blazeds integration?



Spring has always aimed to be agnostic to the client technologies being used to access its core services, intentionally leaving options open and letting the community drive the demand for any new first-class integration solutions to be added to the Spring project portfolio. Spring BlazeDS Integration is an answer to the commmunity demand for a top-level solution for building Spring-powered Rich Internet Applications using Adobe Flex for the client-side technology.

BlazeDS is an open source project from Adobe that provides the remoting and messaging foundation for connecting a Flex-based front-end to Java back-end services. Though it has previously been possible to use BlazeDS to connect to Spring-managed services, it has not been in a way that feels "natural" to a Spring developer, requiring the extra burden of having to maintain a separate BlazeDS xml configuration. Spring BlazeDS Integration turns the tables by making the BlazeDS MessageBroker a Spring-managed object, opening up the pathways to a more extensive integration that follows "the Spring way".

2.系统需求。

Java 5 以上

Spring 2.5.6 以上

Adobe BlazeDS 3.2 以上

3.服务端开发。

在服务器端的开发主要涉及了web.xml和applicationContext的配置。

其中web.xml配置如下:定义了spring的分发servlet和其映射的表达式。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
                         "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
	<display-name>BlazeDS</display-name>
	<description>BlazeDS Application</description>
	<!-- MessageBroker Servlet -->
	<servlet>
		<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
		<servlet-class>
			org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/applicationContext*.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
		<url-pattern>/messagebroker/*</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>springblazeds.html</welcome-file>
	</welcome-file-list>
	<login-config>
		<auth-method>BASIC</auth-method>
	</login-config>
	<!-- for WebSphere deployment, please uncomment 
		
		<resource-ref>
		<description>Flex Messaging WorkManager</description>
		<res-ref-name>wm/MessagingWorkManager</res-ref-name>
		<res-type>com.ibm.websphere.asynchbeans.WorkManager</res-type>
		<res-auth>Container</res-auth>
		<res-sharing-scope>Shareable</res-sharing-scope>
		</resource-ref>
	-->
</web-app>

在spring的配置的文件当中,我们需要在头部加上flex的命名空间等:
xmlns="http://www.springframework.org/schema/beans"
	xmlns:flex="http://www.springframework.org/schema/flex"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/flex http://www.springframework.org/schema/flex/spring-flex-1.0.xsd"

接着我们必须定义一个MessageBroker的工厂类和指出service-config.xml的路径。
<bean id="_messageBroker"
		class="org.springframework.flex.core.MessageBrokerFactoryBean">
		<property name="servicesConfigPath"
			value="/WEB-INF/flex/services-config.xml" />
</bean>

如何定义一个映射请求的urlhandler类:
<bean
		class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			<value>/*=_messageBroker</value>
		</property>
</bean>

再定义一个分发请求的类:
<bean	class="org.springframework.flex.servlet.MessageBrokerHandlerAdapter" />

最后,将我们的服务给暴露出来:
<bean id="productService" class="ProductService">
		
	</bean>
	<bean id="product" class="org.springframework.flex.remoting.RemotingDestinationExporter">
		<property name="messageBroker" ref="_messageBroker"></property>
		<property name="service" ref="productService"></property>
		<property name="channels" value="my-amf"></property>
</bean>

至此服务端开发完毕。

4.客户端开发。

客户端的开发就显得比较简单了:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
	<mx:Script>
		<!--[CDATA[
			import mx.messaging.ChannelSet;
			import mx.messaging.channels.AMFChannel;
			import mx.messaging.Channel;
			import mx.controls.Alert;
			import mx.rpc.events.ResultEvent;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.remoting.RemoteObject;
		
		private var productService:RemoteObject;
		
		private var _productModel:ProductModel;
		
		private var productChannel:Channel;
		private function init():void{
			_productModel=new ProductModel();
			productService=new RemoteObject();
			if(!productChannel){
					productChannel=new AMFChannel("my-amf","http://localhost:8080/springblazeds/messagebroker/amf");
					var channelSet:ChannelSet=new ChannelSet();
					channelSet.addChannel(productChannel);
					productService.channelSet=channelSet;
					productService.destination="product";
			}
		}
		
		private function getProduct(e:MouseEvent):void{
			productService.getProduct();
			productService.addEventListener(FaultEvent.FAULT,getProductFaultHandler);
			productService.addEventListener(ResultEvent.RESULT,getProductResultHandler);
		}
		
		private function getProductFaultHandler(e:FaultEvent):void{
			Alert.show(e.fault.toString());
		}
		
		private function getProductResultHandler(e:ResultEvent):void{
			_productModel=e.result as ProductModel;
			Alert.show(_productModel.productId+" "+_productModel.productName+" "+_productModel.productDetail);			
		}
		]]-->
	</mx:Script>
	<mx:Form verticalCenter="0" horizontalCenter="0" width="400" height="400">
			<mx:Button label="Button" click="getProduct(event)"/>
	</mx:Form>
	
</mx:Application>
分享到:
评论

相关推荐

    BlazeDS与Spring 的结合

    BlazeDS 与 Spring 的结合是将 Adobe 的 BlazeDS 框架与 Spring 框架集成,以实现 Flex 客户端与 Java 服务端的高效通信。BlazeDS 提供了多种服务,包括 Flex Message Service (FMS)、Flex Data Management Service ...

    flex+blazeds+spring

    标题“flex+blazeds+spring”表明我们要探讨的是如何将Flex前端与BlazeDS中继层和Spring后端框架结合起来,实现完整的数据交互和应用程序逻辑。 在Flex与Spring集成的环境中,Flex作为用户界面展示层,负责与用户...

    Flex4.X+BlazeDS+Spring3L实战开发在线书店二

    综上所述,这个在线书店的开发实例结合了Flex 4.6的富用户体验、BlazeDS的数据通信能力、Spring 3的依赖注入和业务管理、JPA的持久化机制以及Hibernate和MySQL的数据库支持。通过学习和实践这个项目,你将能够掌握...

    PureMVC+Flex+BlazeDS+Spring+Hibernate.doc

    这些步骤详细指导了如何逐步建立一个功能齐全的Flex应用,该应用能够通过BlazeDS与Spring服务通信,并利用Hibernate与数据库交互。 在实际的开发过程中,这种整合提供了强大的功能,包括灵活的用户界面设计、高效的...

    BlazeDS整合Spring实现增删改查

    在本主题“BlazeDS整合Spring实现增删改查”中,我们将深入探讨如何利用BlazeDS与Spring框架相结合,以实现在Flex前端进行数据的添加、删除、修改和查询操作。 首先,我们需要理解Spring框架在Java后端的角色。...

    构建全栈式Flex、BlazeDS和Spring集成解决方案.rar

    将Flex、BlazeDS和Spring结合使用,可以构建出全栈式的Web应用解决方案。具体步骤如下: 1. **后端开发**:使用Spring框架构建业务逻辑和服务层。Spring的DI和AOP特性有助于编写可测试、可维护的代码。此外,Spring...

    构建全栈式Flex、BlazeDS和Spring集成解决方案\构建全栈式Flex、BlazeDS和Spring集成解决方案–第二部分 编写to-do list服务器端.pdf

    通过这一部分的学习,读者将能够了解如何使用Spring框架结合Hibernate ORM工具和MySQL数据库来实现一个功能完备的服务器端应用,并为第三部分使用BlazeDS连接前端与后端打下坚实的基础。 #### 技术栈概述 - **Flex...

    Flex4.X+BlazeDS+Spring3L实战开发在线书店一

    学习者将通过实际操作理解Flex 4.6的组件使用、ActionScript编程、BlazeDS的配置与消息通信、Spring 3的服务设计、JPA和Hibernate的实体映射,以及MySQL的数据库设计和操作。这是一次深入理解现代Web应用开发的全面...

    Flex、BlazeDS和Spring集成解决方案案例todolist1

    前端Flex应用通过BlazeDS与Spring服务接口进行通信,当用户在Flex界面中进行操作时,比如添加新的待办事项,请求会通过BlazeDS传递到Spring应用,Spring服务处理这个请求,更新数据库中的数据,然后将响应通过...

    spring-blazeds结合项目源码

    Spring通过Spring BlazeDS Integration项目实现了与BlazDS的无缝对接。该项目提供了一组Spring Bean定义,使得在Spring应用上下文中配置BlazDS服务变得更加简单。通过Spring,你可以声明式地定义...

    构建全栈式Flex、BlazeDS和Spring集成解决方案.zip

    本资源"构建全栈式Flex、BlazeDS和Spring集成解决方案.zip"显然旨在提供一个完整的框架,用于结合Adobe Flex、BlazeDS和Spring框架,以创建高效、可扩展的Web应用程序。下面将详细解释这三个组件以及它们如何协同...

    flex4+blazeDS+spring+ibatis开发教程

    这种架构下,Flex 作为客户端,使用 BlazeDS 实现与后端的实时数据传输,Spring 作为业务逻辑层,iBatis 作为数据持久化层,Cairngorm 作为 Flex 的MVC框架。 ##### 2. Flex+BlazeDS+SpringBlazeDSIntegration+...

    构建全栈式Flex、BlazeDS和Spring集成解决方案

    Spring与Flex结合,可以将Flex前端与Spring后端的服务紧密连接,实现前后端的解耦。 构建全栈式Flex、BlazeDS和Spring集成解决方案的关键步骤包括: 1. **设置开发环境**:首先,确保安装了Flex SDK和IntelliJ ...

    flex4+blazeds+spring+hibernate集成

    集成Flex4、BlazeDS、Spring和Hibernate可以构建出高度互动的前端和强大后端相结合的Web应用。这种架构使得开发人员可以充分利用Flex的富客户端能力,同时利用Spring和Hibernate的强大功能处理业务逻辑和数据库操作...

    Flash Builder 4 + BlazeDs + Spring + Hibernate + Cairngorm开发框架

    通过以上步骤,我们可以构建出一个高效、可维护的Flex应用开发框架,利用Flash Builder 4的便捷,结合BlazeDS、Spring和Hibernate的强大功能,以及Cairngorm的架构指导,为Web应用开发带来更高的生产力和用户体验。...

    Flex pureMVC blazeDS j2ee Spring3.0+Hibernate3.0

    总的来说,"Flex pureMVC blazeDS j2ee Spring3.0+Hibernate3.0"这个项目结合了多种技术,实现了从前端到后端的完整应用开发流程,展示了如何利用现代Web技术构建高效、灵活的多层架构系统。通过这样的组合,开发者...

    Spring MVC+BlazeDS+Flex框架实践

    将Spring MVC与BlazeDS结合,可以实现Java后端与Flex前端的无缝交互。通过BlazeDS的Remoting服务,Spring MVC的控制器可以直接暴露为Flex可以调用的服务。配置Spring的DispatcherServlet和 BlazeDS的Gateway,即可...

    构建全栈式Flex、BlazeDS和Spring集成解决方案–第一部分 创建Maven Flex模块

    随着技术的不断发展,将Flex与强大的服务器端技术如Spring框架结合,成为了一种趋势,以构建更复杂、更稳定的应用程序。Spring框架因其控制反转(IoC)和面向切面编程(AOP)特性,在Java开发领域占据了重要地位,...

    spring+blazeDS+flex4 例子

    《Spring、BlazeDS与Flex4的整合应用详解》 在现代Web开发中,构建交互性强、用户体验良好的富互联网应用程序(Rich Internet Applications, RIA)是开发者追求的目标。Spring、BlazeDS和Flex4的结合,正是实现这一...

Global site tag (gtag.js) - Google Analytics