下面的内容是Spring BlazeDS 和flex的原理性问题,如果您实在搞不懂,也并不影响你使用Spring和flex架构,只是有时你可能不了解那些配置文档说的是什么意思而已。
Flex要想与Spring进行配合使用,需要一个附加的组件BlazeDS。BlazeDS可以将Flex前端的通信内容(amf 格式 Action Message format,一种flex定义的通信规则)转换为java的相关类和对象。
请求处理的简单流程是,flex客户端向服务器发送Request请求,服务器根据Web.xml中的映射,找到Spring配置文档中与flex相关的配置,这个配置就是MessageBroker,MessageBroker是Spring容器根据flex的services-config.xml文件生成的,在services-config.xml中指定了消息通道,Spring将请求交给这个通道(一般是默认通道),通道根据Remoting-config.xml中配置的remoting-service和Adapter将flex的amf转换为java的实例信息。如果需要安全或者消息订阅(jms)还需要提供messaging-config.xml和prox-config.xml配置文件。
所以目录结构大概应该是这样的:
我将我翻译的和Flex配置文档相关的内容贴在下面,您可以到http://static.springsource.org/spring-flex/docs/1.5.x/reference/html/index.html上去看原版的Spring和flex结合使用说明文档(是英文的哦!),或者您只需看看我下面翻译的内容(我进挑选了,只对我关心的内容进行翻译,我有空的时再将整个文档翻译给大家)。
在Spring中使用BlazeDS
1.
结合使用Spring和BlazeDS必须对MessageBroker进行配置。从flex客户端发来的Http 消息(messages)通过Spring的DispatcherServlet(在web.xml中配置)传递给Spring管理的MessageBroker(在Spring的配置文档中指明)。如果使用Spring管理的MessageBroker就不必配置BlazeDS的MessageBrokerServlet(在web.xml文档中指明)了。
Flex通过AMF通道的形式进行通信的,所谓的AMF通道就是指一种编码形式。MessageBroker可以将Flex格式的请求转换成具体的java的调用,并将反馈回的内容(response)编码成Flex能够识别的对象(amf)。
2.
Spring的分发器(DispatchServlet)需要在Web.xml中进行配置,在Web容器启动的时候会创建Spring的上下文环境(Context即WebApplicationContext)。配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- The front controller of this Spring Web application, responsible for handling all application requests -->
<servlet>
</servlet>
3.
在Spring的WebApplicationContext中包含了简单的MessageBroker命名空间相关的信息,对Spring的配置文档中添加相应的schema location才能使用。下面给出一个典型的配置。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"