`
iMzw
  • 浏览: 193492 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

混合多种视图(Flex, Others)的项目架构.

    博客分类:
  • Tips
阅读更多
随着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
2
0
分享到:
评论

相关推荐

    Flex4.0中文API.rar

    1. **Spark组件架构**:Flex 4.0引入了Spark组件集,与先前的MX组件相比,Spark组件更注重样式和皮肤,允许开发者创建具有独特视觉效果的应用。Spark组件包括基础组件(如Button、Label)以及更复杂的组件(如...

    FLEX入门新手篇..创建HelloWorid.doc

    项目创建后,你会看到两个主要的编辑区域:设计视图(Design View)和源代码视图(Code View)。设计视图允许你通过拖放组件来构建用户界面,而源代码视图则显示MXML代码。 4. **添加组件** 在设计视图中,从左侧...

    智慧园区车辆视图大数据系统技术方案.zip

    智慧园区车辆视图大数据系统技术方案.pdf,智慧园区车辆视图大数据系统 技术方案 目录 第一章 .系统概述 3 第二章 .总体设计 3 2.1. 设计依据3 2.2. 技术架构4 2.2.1. 数据获取 5 2.2.2. 数据入库 6 2.2.3. 数据存储...

    三维重建项目-从单目RGB多视图图像重建三维目标-混合集成方法-优质项目实战.zip

    三维重建项目_从单目RGB多视图图像重建三维目标_混合集成方法_优质项目实战

    Flex.4.Cookbook.May.2010

    《Flex 4 Cookbook May 2010...书中包含的Oreilly.Flex.4.Cookbook.May.2010.pdf文件,正是这个宝贵知识库的电子版,值得你深入研究。同时,DSC00316.JPG可能是书中的插图或示例截图,有助于更好地理解和应用书中内容。

    Flex面试题文.pdf

    要更改新建MXML页面的默认背景颜色,可以在Flex项目的皮肤配置文件(通常是theme.css或类似文件)中,定义全局背景颜色。例如,设置`mx|Application{background-color: #your_color;}`。 总结来说,Flex面试题涉及...

    [Flex.Builder.3.Eclipse插件版].Keygen.rar

    将Flex Builder 3作为Eclipse插件,用户可以在同一环境中处理多种类型的项目,无需切换不同的开发工具。这提高了开发效率,也使得团队协作更加顺畅。 Flex Builder 3的特性包括: 1. 强大的代码编辑器:提供...

    flex mvc 架构图

    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 #### 描述:Manning.Flex.3.in.Action.Feb.2009.pdf #### 标签:Manning Flex #### 部分内容:Flex 3 in Action 本书《Flex 3 in Action》由 Manning ...

    Adobe.Flex.4.5.Fundamentals.Training.from.the.Source

    - **Spark架构**:Flex 4.5引入了全新的Spark架构,提高了性能并增强了灵活性。 - **自适应布局**:新的布局系统能够根据屏幕尺寸自动调整UI元素的位置和大小。 - **改进的数据绑定**:提供更强大、更灵活的数据绑定...

    java flex开发项目配置实例

    【Java Flex 开发项目配置实例】教程旨在帮助开发者快速搭建基于Java和Flex的开发环境,实现两者间的交互。Flex是一种用于构建富互联网应用程序(RIA)的前端技术,而Java则作为后端处理业务逻辑和数据管理。以下是...

    Flex手机项目代码

    Flex手机项目代码是一个基于Adobe Flex技术的移动应用开发实例,主要展示了如何利用Flex来构建一个包含数据列表、参数传递和动态组件创建功能的手机应用程序。在这个项目中,开发者"Wanger"使用了Flex SDK,可能结合...

    4 1视图方式的销售管理系统架构.doc

    4 1视图方式的销售管理系统架构

    MyEclipse Flex环境配置详解

    MyEclipse是一款商业的Java EE集成开发环境,它扩展了Eclipse的功能,支持多种编程语言,包括Flex。确保下载的版本支持Flex开发,并遵循官方安装指南完成安装过程。 二、安装Flex SDK 1. 下载Flex SDK:访问Adobe...

    Manning.Flex .3.in.Action.Feb.2009

    - **创建第一个Flex项目**:通过IDE创建一个新项目,并添加基本的UI组件(如按钮、文本框等)来熟悉Flex的基本用法。 ### 使用ActionScript 3.0 ActionScript 3.0是Flex 3的主要编程语言,它是一种面向对象的语言...

    详解数据架构的七类视图

    本文将详细阐述数据架构的七类视图,旨在为数据管理和信息系统建设提供清晰的指引。 首先,企业架构是整体框架,它包括“四横五纵”的结构。“四横”代表了从高层次到低层次的设计阶段,分别是战略架构、业务架构、...

    MFC 单文档视图中进行多种视图的切换

    下面将详细解释如何在MFC的单文档视图中进行多种视图的切换。 首先,理解MFC中的视图(View)类:视图是与用户交互的窗口部件,它通常负责数据显示和用户输入处理。每个视图类都是CView类的派生类,每个类对应一种...

    运用RUP 4+1视图方法进行软件架构设计

    ### 运用RUP 4+1视图方法进行软件架构设计 #### 一、引言 在软件开发过程中,架构设计是确保软件系统能够高效、稳定运行的关键环节。随着软件系统的复杂度不断提高,传统的单一视角已经无法满足设计需求。RUP 4+1...

    Eclipse权威开发指南2.pdf

    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 ...

Global site tag (gtag.js) - Google Analytics