`
javatar
  • 浏览: 1704784 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

模块自包含部署

阅读更多
自动部署方案收工, 达到目标:
项目分成几十个模块和六个子系统.
开发以模块为单位, 模块开发完后都被打成jar包(包括jsp,图片,js,css等全部放入jar包).
模块与子系统不关联, 可以放入任何子系统.
子系统只用于部署(逻辑划分), 最终打成war包.
将模块的jar包放入(任意)子系统的lib目录下即可访问, 不需要作任何配置.
如:
将模块aaa.jar放入子系统xxx.war的lib目录,不作任何配置,即可访问:
http://localhost:8080/xxx/aaa/index.action

实现方案:
(1) 统一规范包名: "com.xxx.module.模块名", 框架自动搜索"com.xxx.module"下的所有子包作为加载项.
(2) 统一SSH配置存放路径: 均放在与模块action,biz,dao同级的目录下, 框架根据规则自动抓取. (通过适配SSH相关类, 以及前后拦截实现)
(3) 运行时自动释放资源: 在项目启动时, 桧测模块内的jsp,图片,js,css等资源是已释放到可访问位置, 未释放则搜索模块下的资源并释放到web可访问位置. 在页面上使用: ${images}/xxx.gif, ${scripts}/xxx.js, ${styles}/xxx.css, 其中images,scripts,styles三个变量由框架拦截器自动注入.
分享到:
评论
12 楼 javatar 2009-04-11  
wendong007 写道

tangshd 写道

leadyu 写道
我的方案是: 业务模型,分子系统模块来建立工程,子系统内部是内聚的,在开发中,严格的建立一定的依赖关系(可用eclipse配置),所有的视图内容,全部在一个统一的WebModule工程中,便于维护和部署。我现在也正在考虑类似的实现方式来升级我们现在的系统..不过我想的是..把逻辑层,业务层,DAO层等分别作为一个工程来开发,部署的是放到一个EAR包里,这样就可以达到复用.不知道你有成熟的方案没有?
 
阿里的WebX框架好像就是这个样子吧

是的,WebX在ear上增加了一个部署逻辑单元,进行功能模块分隔,但公司内部的框架不便于讨论。
11 楼 wendong007 2009-02-25  
<div class="quote_title">tangshd 写道</div>
<div class="quote_div">
<div class="quote_title">leadyu 写道</div>
<div class="quote_div"><br />我的方案是: 业务模型,分子系统模块来建立工程,子系统内部是内聚的,在开发中,严格的建立一定的依赖关系(可用eclipse配置),所有的视图内容,全部在一个统一的WebModule工程中,便于维护和部署。<br /></div>
<br />我现在也正在考虑类似的实现方式来升级我们现在的系统..不过我想的是..把逻辑层,业务层,DAO层等分别作为一个工程来开发,部署的是放到一个EAR包里,这样就可以达到复用.不知道你有成熟的方案没有?</div>
<p> </p>
<p>阿里的WebX框架好像就是这个样子吧</p>
10 楼 ququzone 2009-02-25  
我感觉这个主题可以好好讨论一下,我现在也遇到类似的需求。产品一套代码,不同的项目由于有不同的需求,代码独立。现在遇到的问题是如果需要增加一个通用的功能,产品代码都要移植到不同的项目代码中带来了移植工作量。
9 楼 tangshd 2008-12-16  
leadyu 写道

我的方案是: 业务模型,分子系统模块来建立工程,子系统内部是内聚的,在开发中,严格的建立一定的依赖关系(可用eclipse配置),所有的视图内容,全部在一个统一的WebModule工程中,便于维护和部署。

我现在也正在考虑类似的实现方式来升级我们现在的系统..不过我想的是..把逻辑层,业务层,DAO层等分别作为一个工程来开发,部署的是放到一个EAR包里,这样就可以达到复用.不知道你有成熟的方案没有?
8 楼 javatar 2008-04-18  
你分析的很对, 不同的项目有不同情况, 但我现在做的项目需求比较明确, 视图不会跨模块使用, 通常是模块间跳转.

是会影响到开发, 因为jsp放到src目录后, jsp的修改不会自动更新. 但可以通过配置的方式改变开发时jsp的存放路径, 先放到web目录开发.

部署维护是比较方便的, 将jar包放入/WEB-INF/lib下就行了, 省了大家拷jsp,图片的麻烦, 当然这些可以用脚本做. 并且已经在websphere6.1上面部署成功, 没有什么问题.
7 楼 leadyu 2008-04-17  
引用
这种结构我非常赞同,做个模块,java和jsp,js等资源应该是放在一块才好维护.


容易维护?实际情况是否真的这样呢?

项目开发和通用软件开发的过程有很大不同,在项目开发过程,特别是需求庞大,变更频繁的项目,模块间的依赖关系往往不能一如既往地保证严谨。

特别对于视图,往往跨多模块互相依赖,如果连视图都分入模块,那么在开发环境下,必然造成如蜘蛛网般的project引用关系。

所以,与其建立一个网状的引用关系,不如采用一种星形的依赖关系,把视图独立出来,在开发过程中只需维护一些模块之间的project引用关系简单很多。而这种模块的关系是由业务决定的,只要模块建立的相对合理,模块间的关系还是可以维护的,很少出现循环引用的问题

另外,方便开发和便于部署维护也是要考虑的,上面只是说说自己的经验,应该说也是遇到过深刻教训才有这种感触,不过各个项目情况不同,大家的理解可能不一致。具体的场景就不多说了

6 楼 huangyh 2008-04-14  
这种结构我非常赞同,做个模块,java和jsp,js等资源应该是放在一块才好维护.
5 楼 leadyu 2008-04-14  
我的方案是:

业务模型,分子系统模块来建立工程,子系统内部是内聚的,在开发中,严格的建立一定的依赖关系(可用eclipse配置),所有的视图内容,全部在一个统一的WebModule工程中,便于维护和部署。
4 楼 leadyu 2008-04-14  
不建议这样做。
3 楼 javatar 2008-04-14  
huangyh 写道
顶起来.你这是告诉大家一种思路,还是有框架支持?

没有类似的框架支持, 自行实现的, 上面说的是我实现的方案. 因是为公司写的, 不便公开代码, 就讲讲思路.
2 楼 kebo 2008-04-13  
能说的详细点吗?很有兴趣
1 楼 huangyh 2008-04-13  
顶起来.你这是告诉大家一种思路,还是有框架支持?

相关推荐

    锐捷产品-POE+光模块功能应用部署指导手册V2.0

    "POE+光模块功能应用部署指导手册V2.0"是锐捷为用户提供的一个详细的技术指南,旨在帮助用户理解和配置POE+(Power Over Ethernet Plus)与光模块在实际网络环境中的应用。这份手册涵盖了从基础概念到实际操作的...

    maven多模块项目+jetty热部署实例源码

    在Maven中,一个父项目(Parent POM)可以包含多个子模块(Child Modules),每个子模块都有自己的独立POM文件,这些POM共同构成了项目的构建体系。 1. **创建多模块项目** - 首先,创建一个父POM(parent-pom.xml...

    J2EE打包与部署的总结

    这些档案文件具有特定的目录结构和元数据,比如EJB模块包含ejb-jar.xml实施描述符,Web模块包含web.xml实施描述符。 J2EE打包的目标是确保组件之间的依赖关系得到妥善管理,并能适应不同的运行环境。这需要遵循J2EE...

    水晶报表部署支持模块MSM文件

    这个模块包含了必要的DLL文件和其他资源,如水晶报表的呈现引擎、数据访问组件等,这些是运行水晶报表报表所必需的。在创建安装程序时,开发者需要将此MSM文件合并到自己的MSI安装包中,以便在目标计算机上安装这些...

    OYE AMD模块化开发部署实践 共18页.ppt

    此外,模块化还有助于代码的部署,通过按需加载,减少首屏加载时间,提升用户体验。 **CommonJS与AMD的简述** CommonJS是为JavaScript在非浏览器环境(如服务器或桌面应用)中提供生态系统的一个项目。它由Kevin ...

    dotnet-MicrosoftDeploymentToolkit自动部署PowerShell脚本

    这些函数可能包括连接到MDT服务器、读取部署共享、启动部署任务、收集目标计算机信息以及执行自定义任务等功能。 使用PowerShell与MDT集成的步骤通常包括以下几个部分: 1. **配置环境**:确保你的环境中已安装了...

    asp.net网站访问统计模块安装和部署

    2. **获取模块文件**:下载选定的统计模块,这可能是一个ZIP压缩包,包含DLL库、配置文件、JavaScript代码和其他必要的资源。 3. **添加引用**:将模块的DLL文件添加到项目的引用中。在.NET 2.0环境下,可以通过...

    SOFAArk 是一款基于 Java 实现的轻量级类隔离容器,主要提供类隔离和应用(模块)动态部署能力

    基于 Fat Jar 技术,可以将多个应用模块打包成一个自包含可运行的 Fat Jar,应用既可以是简单的单模块 Java 应用也可以是 SpringBoot/SOFABoot 应用。访问网址进入快速开始并获取更多详细信息。

    水晶报表部署支持模块安装版

    在本压缩包中,"水晶报表部署支持模块安装版"包含了一系列必要的组件,旨在简化安装过程并确保系统能够正确运行和展示水晶报表。 首先,让我们详细了解一下水晶报表的核心功能: 1. **数据连接**:水晶报表支持与...

    Maven多模块SSM框架搭建

    - common:共享模块,包含共用的实体类、工具类、配置文件等。 - service:服务层模块,实现业务逻辑。 - web:Web模块,负责视图展示和控制器功能。 - dao:数据访问层模块,处理与数据库的交互。 4. 搭建步骤...

    deploy-tool:基于java实现的脚本(shellcmd)部署工具,主要用于为部署人员提供简化,统一的配置项,分产品,环境,模块进行自动部署

    使用部署工具,主要是固化原来的手工部署的流程,并提供简化,统一的配置项,分产品,环境,模块进行自动部署,针对的对象主要包括: 产品发布人员:管理产品版本,管理产品分发,根据情况修改部署工具环境,流程,...

    SpringBoot多模块例子-v2.0(建议下载)

    3. **demo-dao**:数据访问对象(DAO)模块专注于与数据库交互,包括实体模型(Entity)、数据源配置、JPA或MyBatis的Mapper接口。这里实现的是业务逻辑中的数据持久化层,负责将数据从数据库读取到内存,或者将内存...

    IWANVI广告系统同步模块部署说明1

    在本文中,我们将深入探讨IWANVI广告系统的同步模块部署,特别是与Redis相关的配置。Redis是一种高性能的键值数据存储系统,常用于缓存、消息队列以及数据结构服务器等场景,对于广告系统来说,它可能用于存储和快速...

    maven 模块化项目demo

    通过POM,Maven能够自动化构建过程,包括编译、测试、打包、部署等步骤。 在模块化项目中,每个模块都有自己的POM文件,描述了该模块的依赖和构建配置。这些模块可以独立构建,也可以作为其他模块的依赖。Maven的...

    易部署模块化智能家居系统设计.pdf

    根据提供的文件内容,本文将详细介绍易部署模块化智能家居系统设计的知识点,包括智能家居系统的基本概念、组成部分、设计原理和拓扑结构。 首先,智能家居系统是以住宅为平台,利用多种技术手段将与家居生活相关的...

    程序集 与 托管模块 解析

    主托管模块包含了程序集的清单(Manifest),这是一个元数据记录,包含了程序集的元数据信息,如版本、公钥、引用的其他程序集等。清单确保了程序集的完整性和安全性。普通托管模块则包含IL(Intermediate Language...

    ASP.NET通用模块及典型系统开发实例导航

    1. ASP.NET通用模块:这些模块是可复用的组件,通常包含了常见的Web应用功能,如用户身份验证、权限管理、日志记录、缓存处理、邮件服务等。学习通用模块有助于提升开发效率,减少重复工作,并确保代码的质量和一致...

    java热部署工具

    以标题中的"jbos热部署"为例,JBoss是Red Hat公司的一个开源企业级应用服务器,它包含了对热部署的支持。 JBoss的热部署机制主要通过以下方式实现: 1. **JRebel**: JRebel是一款商业的Java热部署工具,它可以直接...

    maven分模块小demo

    总结来说,"maven分模块小demo"是一个典型的Maven多模块项目示例,它演示了如何利用Maven进行项目结构的划分、依赖管理、构建和部署。对于初学者而言,这是一个理解Maven工作原理和实践项目组织的良好起点。通过深入...

Global site tag (gtag.js) - Google Analytics