`
javatar
  • 浏览: 1684439 次
  • 性别: 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  
顶起来.你这是告诉大家一种思路,还是有框架支持?

相关推荐

Global site tag (gtag.js) - Google Analytics