`
iMzw
  • 浏览: 194977 次
  • 性别: 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
分享到:
评论

相关推荐

    软件架构4+1视图模型(20211122100015).pdf

    该模型的优点是可以独立地处理功能性和非功能性需求,每种视图使用自身所特有的表示法—蓝图来描述,并且架构师可以对每种视图选用特定的架构风格,从而允许系统中多种风格并存。 软件架构4+1视图模型具有相当的...

    Flex4.0中文API.rar

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

    智慧园区车辆视图大数据系统技术方案.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多视图图像重建三维目标_混合集成方法_优质项目实战

    FlexMVC设计模式.pdf

    FlexMVC设计模式是软件开发中一种用于构建用户界面的架构模式,主要应用于图形用户界面(GUI)系统。该模式的核心思想是将用户界面的三个主要组成部分——模型(Model)、视图(View)和控制器(Controller)分离,...

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

    ### 运用RUP 4+1视图方法进行软件架构设计 #### 一、引言 在软件工程领域,架构设计是确保软件系统能够高效、稳定运行的基础。随着软件系统的复杂度不断提高,传统的单一视图方法已无法满足对软件架构全面而深入的...

    flex mvc 架构图

    Flex MVC架构图是一种用于构建富互联网应用程序(RIA)的架构模型,主要应用于Adobe Flex开发中。Flex是一个开源框架,允许开发者使用MXML和ActionScript创建交互式的、基于Flash的用户界面。MVC(Model-View-...

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

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

    Apress.FriendsofED.AdvancED.Flex.Application.Development.Aug.2008.pdf

    - **数据绑定**:理解Flex的数据绑定机制,实现模型视图控制器(MVC)架构。 - **网络通信**:学习如何通过HTTP、WebSocket等方式与服务器进行通信。 - **RESTful API调用**:掌握使用Flex调用RESTful API的方法,实现...

    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类的派生类,每个类对应一种...

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

    MyEclipse安装Flex 3 插件及新建Flex项目演示

    1. 在MyEclipse中开启Flex视图,右键新建Flex项目,输入项目名称,确保“Server technology”下的“Application server type”选择为J2EE,然后点击“Next”。 2. 新建Tomcat服务器,指定通信文件(例如BlazeDS或...

    introducing_cairngorm.rar_flex_site:www.pudn.com

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

    flex例子.flex源程序

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

    myeclipse+flex插件配置详解

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

    Flex与Java整合demo

    在Flex Builder 3中,LCDS项目旨在将Java J2EE项目与Flex Lcds项目混合。选择"combined"可以将Java和Flex代码放在同一个项目中,简化管理和部署。 2. 配置J2EE服务器。在Target runtime中选择或创建Tomcat的运行时...

Global site tag (gtag.js) - Google Analytics