以下是一个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
相关推荐
使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·
Flex PureMVC Flex BlazeDS Spring Hibernate 整合 里面一些图标是包双击可查看源代码
本课程主要是讲解Flex 4.6和ActionScript 3.0使用方法和技巧
本课程主要是讲解Flex 4.6和ActionScript 3.0使用方法和技巧
此案例用到的框架是Flex+BlazeDS+Spring+Hibernate完成了三个案例的整合,用到的数据库脚本已经在项目中。只需要加压,在软件中导入,执行数据库脚本,项目就可以运行。
Flex4+BlazeDS+Spring+Hibernate 整合源码博文源码
一步一步讲解了PureMVC+Flex+BlazeDS+Spring+Hibernate的搭建,适合初学者参照
跟我一步步搭建 PureMVC+Flex+BlazeDS+Spring+Hibernate
一步步搭建+PureMVC+Flex+BlazeDS+Spring+Hibernate
flex4+blazeds+spring+hibernate集成源码。内附完整jar包以及配置。给后来知道者帮助。
跟我一步步搭建PureMVC+Flex+BlazeDS+Spring+Hibernate
Myeclipse6.5+flex3+Blazeds+spring+hibernate完美整合,写的非常详细
Myeclipse6.5+flex3+Blazeds+spring+hibernate完美整合源代码,已经调试成功,可以运行。配有相应的word文档
Flex+Gilead+BlazeDS+Spring+Hibernate示例Demo,使用1:n和m:n两个双向关系,很好的演示了Gilead的Hibernate Lazy Killer特性,借助Gilead可以有效规避DTO模式的大量繁琐代码。效果图展示地址:...
一个 Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) 本实例为一个 flex 与 java通信项目。前端采用cairngorm框架,后台 采用hibernate+spring 每个部署 步骤,附详细 图文解释。旨在 采用 一种快速开发 ...
自己写的一个Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring)part1.pdf
flex 结合spring,完成前后台数据传递。
Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part4.pdf 终结版
Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3.pdf 第三部分。。add spring and hibernate
NULL 博文链接:https://ynpanhong.iteye.com/blog/842029