`
iMzw
  • 浏览: 193910 次
  • 性别: 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. 数据存储...

    Flex视图切换,自定义控件Demo.rar

    视图切换使用户能够流畅地在多个界面间导航,而自定义控件则允许开发者创造出符合项目需求的独特组件,提升应用的视觉效果和功能性。在Flex开发中,理解并熟练掌握这些技术对于构建高效且用户友好的应用程序至关重要...

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

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

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

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

    Flex_API的架构图

    在Flex API的架构图中,我们可以看到不同组件、服务和接口是如何相互关联和协同工作的。以下是对Flex API架构及其关键组成部分的详细解释。 1. **Flex SDK**: Flex SDK是开发Flex应用的基础,它包含了一系列的库、...

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

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

    flex例子.flex源程序

    这个"flex例子.flex源程序"很显然是一个Flex开发的学习资源,它包含了一个或多个示例项目,用于帮助开发者理解和掌握Flex编程的基本概念和实践。 Flex的主要组件包括MXML和ActionScript,它们是构建Flex应用的两大...

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

    introducing_cairngorm.rar_flex_site:www.pudn.com

    而Cairngorm框架,则是专门为Flex应用程序设计的一种轻量级、可扩展的MVC(模型-视图-控制器)架构模式,它极大地提升了Flex应用的组织结构和可维护性。 Cairngorm框架由Adobe的ColdFusion团队开发,其设计理念源于...

    myeclipse+flex插件配置详解

    6. 项目配置完成:项目图标变更为双地球标识,表示已成功配置为Flex和Java的混合项目。 四、Flex项目开发 1. Flex应用程序入口:每个Flex项目都有一个主MXML文件(如Flex_J2eeDemo.mxml),这是应用程序的起点。 ...

Global site tag (gtag.js) - Google Analytics