随着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
分享到:
相关推荐
该模型的优点是可以独立地处理功能性和非功能性需求,每种视图使用自身所特有的表示法—蓝图来描述,并且架构师可以对每种视图选用特定的架构风格,从而允许系统中多种风格并存。 软件架构4+1视图模型具有相当的...
1. **Spark组件架构**:Flex 4.0引入了Spark组件集,与先前的MX组件相比,Spark组件更注重样式和皮肤,允许开发者创建具有独特视觉效果的应用。Spark组件包括基础组件(如Button、Label)以及更复杂的组件(如...
智慧园区车辆视图大数据系统技术方案.pdf,智慧园区车辆视图大数据系统 技术方案 目录 第一章 .系统概述 3 第二章 .总体设计 3 2.1. 设计依据3 2.2. 技术架构4 2.2.1. 数据获取 5 2.2.2. 数据入库 6 2.2.3. 数据存储...
视图切换使用户能够流畅地在多个界面间导航,而自定义控件则允许开发者创造出符合项目需求的独特组件,提升应用的视觉效果和功能性。在Flex开发中,理解并熟练掌握这些技术对于构建高效且用户友好的应用程序至关重要...
### 运用RUP 4+1视图方法进行软件架构设计 #### 一、引言 在软件工程领域,架构设计是确保软件系统能够高效、稳定运行的基础。随着软件系统的复杂度不断提高,传统的单一视图方法已无法满足对软件架构全面而深入的...
4 1视图方式的销售管理系统架构
MyEclipse是一款商业的Java EE集成开发环境,它扩展了Eclipse的功能,支持多种编程语言,包括Flex。确保下载的版本支持Flex开发,并遵循官方安装指南完成安装过程。 二、安装Flex SDK 1. 下载Flex SDK:访问Adobe...
在Flex API的架构图中,我们可以看到不同组件、服务和接口是如何相互关联和协同工作的。以下是对Flex API架构及其关键组成部分的详细解释。 1. **Flex SDK**: Flex SDK是开发Flex应用的基础,它包含了一系列的库、...
下面将详细解释如何在MFC的单文档视图中进行多种视图的切换。 首先,理解MFC中的视图(View)类:视图是与用户交互的窗口部件,它通常负责数据显示和用户输入处理。每个视图类都是CView类的派生类,每个类对应一种...
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 ...
1. 在MyEclipse中开启Flex视图,右键新建Flex项目,输入项目名称,确保“Server technology”下的“Application server type”选择为J2EE,然后点击“Next”。 2. 新建Tomcat服务器,指定通信文件(例如BlazeDS或...
而Cairngorm框架,则是专门为Flex应用程序设计的一种轻量级、可扩展的MVC(模型-视图-控制器)架构模式,它极大地提升了Flex应用的组织结构和可维护性。 Cairngorm框架由Adobe的ColdFusion团队开发,其设计理念源于...
这个"flex例子.flex源程序"很显然是一个Flex开发的学习资源,它包含了一个或多个示例项目,用于帮助开发者理解和掌握Flex编程的基本概念和实践。 Flex的主要组件包括MXML和ActionScript,它们是构建Flex应用的两大...
6. 项目配置完成:项目图标变更为双地球标识,表示已成功配置为Flex和Java的混合项目。 四、Flex项目开发 1. Flex应用程序入口:每个Flex项目都有一个主MXML文件(如Flex_J2eeDemo.mxml),这是应用程序的起点。 ...
在Flex Builder 3中,LCDS项目旨在将Java J2EE项目与Flex Lcds项目混合。选择"combined"可以将Java和Flex代码放在同一个项目中,简化管理和部署。 2. 配置J2EE服务器。在Target runtime中选择或创建Tomcat的运行时...
通过对"Flex万年历记事本"的源码学习,开发者不仅可以了解Flex的基本用法,还能深入理解如何在实际项目中整合多种Flex特性,提升自己的RIA开发能力。同时,这也是一个实践数据管理和用户交互的绝佳案例。
9. **数据可视化**:Flex JS 的图表组件支持多种视觉效果,如3D视图、动态动画和实时更新,使得数据可视化更加生动和吸引人。 10. **报表导出**:Flex 应用程序通常包含导出报表到PDF、Excel或其他格式的功能,便于...
这个插件以易用性和灵活性著称,支持多种视图,如日视图、周视图、月视图等,使得用户可以方便地查看和管理事件。`fullCalendar`适用于各种场合,包括个人日程规划、会议安排、项目管理等。 **增加年视图的功能** ...