flex与spring集成

参考文档是 Spring BlazeDS Integration Reference Guide。spring已经提供了与flex的集成的支持,主要的jar包下载地址:http://www.springsource.com/download/community?project=Spring%20BlazeDS%20Integration
Flex与Spring集成的核心思想就是让Spring来管理 MessageBroker。如何集成?可以总结为三步。
1、首先,修改 web.xml文件,将之前配置的 MessageBrokerServlet  去掉改成spring的,

  1. <servlet>   
  2.     <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>   
  3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>   
  4.     <init-param>   
  5.         <param-name>contextConfigLocation</param-name>   
  6.         <param-value>   
  7.                 /WEB-INF/config/web-application-config.xml   
  8.         </param-value>   
  9.     </init-param>   
  10.     <load-on-startup>1</load-on-startup>   
  11. </servlet>   
  12.     
  13. <servlet-mapping>   
  14.     <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>   
  15.     <url-pattern>/messagebroker/*</url-pattern>   
  16. </servlet-mapping>  
<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/config/web-application-config.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>



2,新建文件 web-application-config.xml

  1. <?xml version="1.0" encoding="GB2312" ?>   
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3. xmlns:flex="http://www.springframework.org/schema/flex" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4. xsi:schemaLocation="   
  5. http://www.springframework.org/schema/beans   
  6. http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
  7. http://www.springframework.org/schema/flex   
  8. http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">   
  9.     
  10. <!-- Bootstraps and exposes the BlazeDS MessageBroker simplest form -->   
  11. <flex:message-broker id="_messageBroker" services-config-path="/WEB-INF/flex/services-config.xml">   
  12.     <flex:mapping pattern="/messagebroker/*" />   
  13.     <flex:exception-translator ref="myExceptionTranslator" />   
  14. </flex:message-broker>   
  15.     
  16. <!--   
  17. 上面配置是一种简单配置,另外一种更简单配置为:   
  18. <flex:message-broker/>   
  19.     
  20. 还有一种配置为:   
  21. <bean id="mySpringManagedMessageBroker" class="org.springframework.flex.core.MessageBrokerFactoryBean">   
  22.     <property name="servicesConfigPath" value="classpath*:flex/services-config.xml" />   
  23. </bean>   
  24. -->   
  25.     
  26. <!-- Maps request paths at /* to the BlazeDS MessageBroker -->   
  27. <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">   
  28.     <property name="mappings">   
  29.         <value>   
  30.             /*=_messageBroker   
  31.         </value>   
  32.     </property>   
  33. </bean>   
  34.     
  35. <!-- 下面这个Adapter似乎不用配置,因为我注释后照样可以使用 -->   
  36. <!--   
  37. Dispatches requests mapped to a MessageBroker    
  38. <bean class="org.springframework.flex.servlet.MessageBrokerHandlerAdapter" />   
  39. -->   
  40.     
  41. </beans>  
<?xml version="1.0" encoding="GB2312" ?>
<beans 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">
 
<!-- Bootstraps and exposes the BlazeDS MessageBroker simplest form -->
<flex:message-broker id="_messageBroker" services-config-path="/WEB-INF/flex/services-config.xml">
    <flex:mapping pattern="/messagebroker/*" />
    <flex:exception-translator ref="myExceptionTranslator" />
</flex:message-broker>
 
<!--
上面配置是一种简单配置,另外一种更简单配置为:
<flex:message-broker/>
 
还有一种配置为:
<bean id="mySpringManagedMessageBroker" class="org.springframework.flex.core.MessageBrokerFactoryBean">
    <property name="servicesConfigPath" value="classpath*:flex/services-config.xml" />
</bean>
-->
 
<!-- Maps request paths at /* to the BlazeDS MessageBroker -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <value>
            /*=_messageBroker
        </value>
    </property>
</bean>
 
<!-- 下面这个Adapter似乎不用配置,因为我注释后照样可以使用 -->
<!--
Dispatches requests mapped to a MessageBroker 
<bean class="org.springframework.flex.servlet.MessageBrokerHandlerAdapter" />
-->
 
</beans>


3,写remoting-config.xml 文件:

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <service id="remoting-service" class="flex.messaging.services.RemotingService">   
  3.     
  4. <adapters>   
  5.     <adapter-definition id="java-object"    
  6.                         class="flex.messaging.services.remoting.adapters.JavaAdapter"    
  7.                         default="true"/>   
  8. </adapters>   
  9.     
  10. <default-channels>   
  11.     <channel ref="my-amf"/>   
  12. </default-channels>   
  13.     
  14. </service>  
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" class="flex.messaging.services.RemotingService">
 
<adapters>
    <adapter-definition id="java-object" 
                        class="flex.messaging.services.remoting.adapters.JavaAdapter" 
                        default="true"/>
</adapters>
 
<default-channels>
    <channel ref="my-amf"/>
</default-channels>
 
</service>



到目前为止,flex已经跟spring集成到一起了。
4、将spring的bean导出为flex的Destination。我们要在web-application-config.xml文件中增加。
有三种方式:
第一种:

  1. <bean id="productService" class="flex.samples.product.ProductServiceImpl" />   
  2. <flex:remoting-destination ref="productService" />  
<bean id="productService" class="flex.samples.product.ProductServiceImpl" />
<flex:remoting-destination ref="productService" />



第二种:

  1. <bean id="productService" class="flex.samples.product.ProductServiceImpl" >   
  2.     <flex:remoting-destination />   
  3. </bean>  
<bean id="productService" class="flex.samples.product.ProductServiceImpl" >
    <flex:remoting-destination />
</bean>


第三种:

  1. <bean id="product" class="org.springframework.flex.remoting.RemotingDestinationExporter">   
  2.     <property name="messageBroker" ref="_messageBroker"/>   
  3.     <property name="service" ref="productService"/>   
  4.     <property name="serviceId" value="productService"/>   
  5.     <property name="includeMethods" value="read, update"/>   
  6.     <property name="excludeMethods" value="create, delete"/>   
  7.     <property name="channels" value="my-amf, my-secure-amf"/>   
  8. </bean>  
<bean id="product" class="org.springframework.flex.remoting.RemotingDestinationExporter">
    <property name="messageBroker" ref="_messageBroker"/>
    <property name="service" ref="productService"/>
    <property name="serviceId" value="productService"/>
    <property name="includeMethods" value="read, update"/>
    <property name="excludeMethods" value="create, delete"/>
    <property name="channels" value="my-amf, my-secure-amf"/>
</bean>



工程中所需要的jar

  1. backport-util-concurrent.jar   
  2. cfgatewayadapter.jar   
  3. cglib-nodep-2.1_3.jar   
  4. commons-codec-1.3.jar   
  5. commons-httpclient-3.0.1.jar   
  6. commons-logging.jar   
  7. concurrent.jar   
  8. flex-messaging-common.jar   
  9. flex-messaging-core.jar   
  10. flex-messaging-opt.jar   
  11. flex-messaging-proxy.jar   
  12. flex-messaging-remoting.jar   
  13. jackson-lgpl-0.9.5.jar   
  14. org.springframework.flex-1.0.0.RC1.jar   
  15. spring2.5.6.jar   
  16. spring-webmvc.jar   
  17. xalan.jar  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值