以下是一个Flex页面访问RemoteObject的代码:
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
- <mx:Script>
- <![CDATA[
- import mx.rpc.events.ResultEvent;
- import mx.controls.Alert;
- private function callRO(str:String):void{
- Alert.show("flexSpringBeanTest");
- firstRO.say(str);
- firstRO.addEventListener(ResultEvent.RESULT,getROResult);
- }
- private function getROResult(e:ResultEvent) :void {
- Alert.show(e.result.toString());
- }
- //flexObjectTest
- ]]>
- </mx:Script>
- <mx:RemoteObject id="firstRO" destination="flexSpringBeanTest"/>
- <mx:TextInput x="109" y="28" id="input" text="hello!"/>
- <mx:Button x="270" y="28" click="callRO(input.text)" label="请求"/>
- </mx:Application>
在remote-config.xml配置里,映射一个Spring管理的Bean是这么写的
- <destination id="flexSpringBeanTest">
- <properties>
- <factory>springFactory</factory>
- <source>flexObjectTest</source>
- </properties>
- </destination>
在services-config.xml配置自定义的SpringFactory类,即我们要实现从从spring容器中去取得bean。
- <factories>
- <factory id="springFactory" class="cn.org.coral.core.flex.factory.FlexSpringFactory" />
- </factories>
这个工厂类的定义:
- package cn.org.coral.core.flex.factory;
- import flex.messaging.FactoryInstance;
- import flex.messaging.FlexFactory;
- import flex.messaging.config.ConfigMap;
- /**
- * 要对某个java类实现自己定义的切入,可以使用工厂配置,需要在ro访问前,从spring里去getbean<br>
- *
- * @author Libin
- *
- */
- public class FlexSpringFactory implements FlexFactory{
- @Override
- public FactoryInstance createFactoryInstance(String id, ConfigMap properties){
- SpringFactoryInstance instance = new SpringFactoryInstance(this, id, properties);
- instance.setSource(properties.getPropertyAsString(SOURCE, instance.getId()));
- return instance;
- }
- @Override
- public Object lookup(FactoryInstance inst) {
- SpringFactoryInstance factoryInstance = (SpringFactoryInstance) inst;
- return factoryInstance.lookup();
- }
- @Override
- public void initialize(String arg0, ConfigMap arg1) {
- // TODO Auto-generated method stub
- }
- }
该factory需要实现FlexFactory接口。实现createFactoryInstance方法和lookup方法
- package cn.org.coral.core.flex.factory;
- import org.springframework.beans.BeansException;
- import org.springframework.beans.factory.NoSuchBeanDefinitionException;
- import org.springframework.context.ApplicationContext;
- import org.springframework.web.context.support.WebApplicationContextUtils;
- import flex.messaging.FactoryInstance;
- import flex.messaging.config.ConfigMap;
- import flex.messaging.services.ServiceException;
- public class SpringFactoryInstance extends FactoryInstance
- {
- SpringFactoryInstance(FlexSpringFactory factory, String id, ConfigMap properties)
- {
- super(factory, id, properties);
- }
- public Object lookup()
- {
- //这就是从spring容器中getbean了
- ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(flex.messaging.FlexContext.getServletConfig().getServletContext());
- String beanName = getSource();
- try
- {
- return appContext.getBean(beanName);
- }
- catch (NoSuchBeanDefinitionException nexc)
- {
- ServiceException e = new ServiceException();
- throw e;
- }
- catch (BeansException bexc)
- {
- ServiceException e = new ServiceException();
- throw e;
- }
- }
- }
后台service的定义:
- package cn.org.coral.sample.flex.manager;
- public class FlexObjectTest {
- public String say(String str){
- return "say : " + str;
- }
- }
spring-context.xml的配置
- <?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="flexObjectTest"
- class="cn.org.coral.sample.flex.manager.FlexObjectTest">
- </bean>
- </beans>
来源:http://lib.iteye.com/blog/202193
另参考:http://jfp.iteye.com/blog/257964
相关推荐
【标题】"Flex4.X+BlazeDS+Spring3实战开发在线书店四"涉及的核心技术栈是Adobe Flex 4.6、BlazeDS、Spring 3框架以及Java相关的JPA和Hibernate,配合MySQL数据库实现一个在线书店的完整系统。下面将详细阐述这些...
标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate.doc”指的是一项整合了多种技术的Web应用开发方案,这些技术包括PureMVC、Flex、BlazeDS、Spring和Hibernate。这篇文档可能是指导读者如何将这些技术结合在一起...
总的来说,这门课程将全面覆盖从前端到后端的开发技术,包括Flex 4.6的界面设计,BlazeDS的数据交换,Spring 3的服务管理,JPA和Hibernate的持久化操作,以及MySQL的数据库管理。通过实际的在线书店项目,学员不仅能...
通过以上步骤,我们可以构建出一个高效、可维护的Flex应用开发框架,利用Flash Builder 4的便捷,结合BlazeDS、Spring和Hibernate的强大功能,以及Cairngorm的架构指导,为Web应用开发带来更高的生产力和用户体验。...
Flex+BlazeDS+Spring+Hibernate 是一个经典的前端与后端集成方案,广泛应用于构建富互联网应用程序(Rich Internet Applications,RIA)。在这个框架组合中,Flex 作为用户界面层,提供了丰富的交互体验;BlazeDS ...
一个 Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) 本实例为一个 flex 与 java通信项目。前端采用cairngorm框架,后台 采用hibernate+spring 每个部署 步骤,附详细 图文解释。旨在 采用 一种快速开发 ...
标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate”是一个常见的技术栈组合,用于构建企业级的 Rich Internet Applications (RIA)。这个技术栈包括前端开发框架、后端服务通讯、应用服务器、服务端架构和数据持久化...
根据提供的文件信息,本文将详细介绍如何一步步搭建PureMVC+Flex+BlazeDS+Spring+Hibernate的技术栈。这个过程涉及到了多个技术领域的整合,包括前端的Flex开发、后端的Java开发以及数据库交互等多个方面。 ### 一...
本文将带你逐步构建一个基于PureMVC、Flex、BlazeDS、Spring和Hibernate的完整应用程序。这是一个典型的 Rich Internet Application (RIA) 解决方案,旨在实现前后端的数据交互和业务逻辑处理。 首先,你需要准备和...
Flex4、BlazeDS、Spring和Hibernate是四个在IT领域中关键的技术组件,它们的集成为构建高效、灵活且功能丰富的Web应用程序提供了强大的基础。下面将详细解释这些技术及其集成方式。 **Flex4** 是Adobe Flex框架的一...
以上步骤中,每一步都涉及到对特定技术的深入理解和操作,例如MyEclipse的使用、Flex与BlazeDS的集成、Spring和Hibernate的配置以及PureMVC架构的实现。这些知识点构成了整个搭建过程的基础,为开发者提供了一条清晰...
### Flex+J2EE 实例(Cairngorm+BlazeDS+Hibernate+Spring)Part 3 #### 概述 本章节主要介绍了如何在已有的Flex+J2EE架构项目中集成Spring框架和Hibernate持久层框架。通过这种方式,我们可以更好地实现业务逻辑...
**集成Remote Object到Spring**:在Flex客户端,使用RemoteObject组件与BlazeDS建立连接,然后在Spring配置文件中定义相应的服务代理,以便于Spring管理这些远程服务。 D. **引入Hibernate框架**:在Java后端,...
本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...
Flex+Blazeds+Spring+Hibernate+MySQL是一个经典的Java企业级开发组合,它结合了前端的富互联网应用程序(RIA)开发框架Flex与后端的强大数据处理能力,通过Blazeds作为中间层通信桥梁,利用Spring进行服务管理和...
### Flex+J2EE 实例(cairngorm+blazeDS+hibernate+spring)Part 4 本文档是关于如何利用Flex与Java EE技术栈构建一个完整的富互联网应用(RIA)项目的系列文章之一。该部分主要介绍了如何集成Cairngorm框架到项目...
3. **Hibernate与Spring整合**:Hibernate提供了一种简单的方式来实现Java对象和数据库表之间的映射。Spring框架则可以管理这些Hibernate SessionFactory实例和其他依赖关系,使得开发人员可以更方便地进行数据库...
标题中的"FLEX4+Gilead+BlazeDS+pureMVC+spring2.5 MVC+hibernate3.3+SLF4J+CXF2.3.0"涉及了多个关键技术和框架,这些都是在构建分布式、企业级Web应用程序时常用的技术组件。下面将逐一解析这些技术的核心概念和...