随着Flex应用的越来越多, 我接触大部分项目都或多或少的使用了Flex, 经过一段时间的积累, 形成了一个我个人用着比较顺手的架构.
下载
项目模板, 集成了BlazeDS, 可以直接使用).
使用Spring整合整个项目. Spring-flex集成BlazeDS, Spring托管其他web框架(Struts, Webwork ...).
项目目录结构如下.
src 下 applicationContext.xml 为核心业务的配置文件.
WEB-INF/config下为视图层配置文件.
使用数据访问对象(DAO)模式隔离持久层.
核心业务在服务层(Service),使用Facade模式对外提供统一的接口.
test源文件夹放 单元测试和集成测试的代码, 很容易的实现 核心业务代码 和 测试代码的分离(不同的源码树), 同时又使 测试类 和 被测试类在相同包(同样的package). applicationContext-test.xml 为支撑测试用的配置文件.
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
<!-- Http Flex Session attribute and binding listener support -->
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<servlet>
<servlet-name>flex</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/applicationContext-flex.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>web</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/applicationContext-web.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>flex</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>web</servlet-name>
<url-pattern>/page/*</url-pattern>
</servlet-mapping>
通过ContextLoaderListener初始化核心业务.
通过 Spring Web MVC, 分离 Flex 和其他 视图. flex 为Flex提供服务, web 为其他框架提供集成.
applicationContext.xml 配置核心业务.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<bean id="myContactsService" class="com.nealmi.mycontacts.service.MyContactsServiceImpl"></bean>
<bean id="contactDao" class="com.nealmi.mycontacts.dao.impl.JdbcContactDao"></bean>
</beans>
applicationContext-flex.xml 导出flex服务.
<?xml version="1.0" encoding="UTF-8"?>
<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"
xmlns:aop="http://www.springframework.org/schema/aop"
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 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd ">
<flex:message-broker></flex:message-broker>
<flex:remoting-destination ref="myContactsService" />
</beans>
applicationContext-web.xml 这里托管了 struts(注释部分配置).
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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.xsd">
<!--
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="*.do">strutsWrappingController</prop>
</props>
</property>
</bean>
<bean id="strutsWrappingController"
class="org.springframework.web.servlet.mvc.ServletWrappingController">
<property name="servletClass">
<value>org.apache.struts.action.ActionServlet</value>
</property>
<property name="servletName">
<value>action</value>
</property>
<property name="initParameters">
<props>
<prop key="config">/WEB-INF/struts-config.xml</prop>
</props>
</property>
</bean>
-->
</beans>
通过如上方式, 基本保证了各部分的松散耦合, web.xml也十分清晰.
- 大小: 59.9 KB
分享到:
相关推荐
1. **Spark组件架构**:Flex 4.0引入了Spark组件集,与先前的MX组件相比,Spark组件更注重样式和皮肤,允许开发者创建具有独特视觉效果的应用。Spark组件包括基础组件(如Button、Label)以及更复杂的组件(如...
项目创建后,你会看到两个主要的编辑区域:设计视图(Design View)和源代码视图(Code View)。设计视图允许你通过拖放组件来构建用户界面,而源代码视图则显示MXML代码。 4. **添加组件** 在设计视图中,从左侧...
智慧园区车辆视图大数据系统技术方案.pdf,智慧园区车辆视图大数据系统 技术方案 目录 第一章 .系统概述 3 第二章 .总体设计 3 2.1. 设计依据3 2.2. 技术架构4 2.2.1. 数据获取 5 2.2.2. 数据入库 6 2.2.3. 数据存储...
三维重建项目_从单目RGB多视图图像重建三维目标_混合集成方法_优质项目实战
《Flex 4 Cookbook May 2010...书中包含的Oreilly.Flex.4.Cookbook.May.2010.pdf文件,正是这个宝贵知识库的电子版,值得你深入研究。同时,DSC00316.JPG可能是书中的插图或示例截图,有助于更好地理解和应用书中内容。
要更改新建MXML页面的默认背景颜色,可以在Flex项目的皮肤配置文件(通常是theme.css或类似文件)中,定义全局背景颜色。例如,设置`mx|Application{background-color: #your_color;}`。 总结来说,Flex面试题涉及...
将Flex Builder 3作为Eclipse插件,用户可以在同一环境中处理多种类型的项目,无需切换不同的开发工具。这提高了开发效率,也使得团队协作更加顺畅。 Flex Builder 3的特性包括: 1. 强大的代码编辑器:提供...
Flex MVC架构图是一种用于构建富互联网应用程序(RIA)的架构模型,主要应用于Adobe Flex开发中。Flex是一个开源框架,允许开发者使用MXML和ActionScript创建交互式的、基于Flash的用户界面。MVC(Model-View-...
#### 书名:Manning.Flex.3.in.Action.Feb.2009 #### 描述:Manning.Flex.3.in.Action.Feb.2009.pdf #### 标签:Manning Flex #### 部分内容:Flex 3 in Action 本书《Flex 3 in Action》由 Manning ...
- **Spark架构**:Flex 4.5引入了全新的Spark架构,提高了性能并增强了灵活性。 - **自适应布局**:新的布局系统能够根据屏幕尺寸自动调整UI元素的位置和大小。 - **改进的数据绑定**:提供更强大、更灵活的数据绑定...
【Java Flex 开发项目配置实例】教程旨在帮助开发者快速搭建基于Java和Flex的开发环境,实现两者间的交互。Flex是一种用于构建富互联网应用程序(RIA)的前端技术,而Java则作为后端处理业务逻辑和数据管理。以下是...
Flex手机项目代码是一个基于Adobe Flex技术的移动应用开发实例,主要展示了如何利用Flex来构建一个包含数据列表、参数传递和动态组件创建功能的手机应用程序。在这个项目中,开发者"Wanger"使用了Flex SDK,可能结合...
4 1视图方式的销售管理系统架构
MyEclipse是一款商业的Java EE集成开发环境,它扩展了Eclipse的功能,支持多种编程语言,包括Flex。确保下载的版本支持Flex开发,并遵循官方安装指南完成安装过程。 二、安装Flex SDK 1. 下载Flex SDK:访问Adobe...
- **创建第一个Flex项目**:通过IDE创建一个新项目,并添加基本的UI组件(如按钮、文本框等)来熟悉Flex的基本用法。 ### 使用ActionScript 3.0 ActionScript 3.0是Flex 3的主要编程语言,它是一种面向对象的语言...
本文将详细阐述数据架构的七类视图,旨在为数据管理和信息系统建设提供清晰的指引。 首先,企业架构是整体框架,它包括“四横五纵”的结构。“四横”代表了从高层次到低层次的设计阶段,分别是战略架构、业务架构、...
下面将详细解释如何在MFC的单文档视图中进行多种视图的切换。 首先,理解MFC中的视图(View)类:视图是与用户交互的窗口部件,它通常负责数据显示和用户输入处理。每个视图类都是CView类的派生类,每个类对应一种...
### 运用RUP 4+1视图方法进行软件架构设计 #### 一、引言 在软件开发过程中,架构设计是确保软件系统能够高效、稳定运行的关键环节。随着软件系统的复杂度不断提高,传统的单一视角已经无法满足设计需求。RUP 4+1...
3.5.2 Package Explorer视图..... 100 3.5.3 Hierarchy视图..... 101 3.5.4 Call Hierarchy视图..... 102 3.5.5 Outline视图..... 103 3.5.6 Problems视图..... 103 3.5.7 Search视图..... 103 3.5.8 Java Type ...