-
项目怎么实现“模块化”部署? 0
比如一个系统包括“人员管理”,“设备管理”,“订单管理”,“库存管理”等内容,实际的项目可能不需要所有的功能,只需要其中一部分。
现在所有代码都写在一起了,所有的表都在一个库里面,如果不需要某些功能 就是修改页面,把相关的链接去掉,页面上没了但是后台代码和数据库还有。
如果想实现“模块化”部署,应该怎么重构,重构的思路什么?2012年6月27日 08:15
12个答案 按时间排序 按投票排序
-
采纳的答案
如果仅仅是模块化部署,使用maven足够了
将各个子系统拆分成不同的项目, 使用maven在部署时将各个子系统打成jar包形式
如果不需要某个系统,只需要修改pom.xml文件即可。
如果要实现物理上模块化就要采用osgi和远程通信技术了。不过我感觉你的系统不需要这些东西。。。不是什么高并发大访问量的互联网产品,使用maven就足够了
代码重构就涉及应用拆分, 将不同的业务单元拆分成各个不同的项目,然后用ant或者maven构建在一起。 好处是当系统越来越庞大,将大系统拆分可以降低维护成本,不同的开发人员可以关注不同的工程代码。2012年6月28日 16:09
-
提供一个简单的思路,分两部分:
1、代码
可以借鉴Eclipse的RCP插件机制,将模块代码(java,jsp,properties,配置文件等)分离,比如:
WEB-INF\plugin\base\
WEB-INF\plugin\blog\
WEB-INF\plugin\cms\
WEB-INF\plugin\space\
......
在每个模块下自定义plugin.xml文件来实现模块的配置加载。
如果用到struts1可以参考我回答的这个问题:http://www.iteye.com/problems/85161
2、数据库
同上,将每个模块的DDL放到各自目录下
比如:
安装模块(CREATE TABLE) plugin\cms\install\database.sql
卸载模块(DROP TABLE) plugin\cms\uninstall\database.sql
基础数据库放入共通之下。
大体目录结构如下:
─WEB-INF
└─plugin
├─base
│ │ plugin.xml
│ │
│ ├─config
│ ├─install
│ │ database.sql
│ │
│ ├─jsp
│ ├─src
│ └─uninstall
│ database.sql
│
├─blog
│ │ plugin.xml
│ │
│ ├─config
│ ├─install
│ │ database.sql
│ │
│ ├─jsp
│ ├─src
│ └─uninstall
│ database.sql
│
├─cms
└─space2012年6月27日 09:03
-
可以用 maven管理 osgi组件式。
也可以参考 spring的插件方式。实现spring的接口,让spring的反射技术来加载你的组件2012年6月27日 22:54
-
这个问题我一直也在考虑,但是一直没有合适的解决办法,servlet3.0 碎片化配置或许能好些,我给你提供一个思路,把每个模块当作一个项目来开发,其他还真没想到好的办法和替代技术!!
2012年6月27日 21:21
-
代码,页面和数据库脚本按照每个模块所属编写到所属文件夹下,每个模块用独立的ant脚本来编译,需要哪个模块的时候就编译哪个模块
2012年6月27日 17:21
-
通过OSGi动态技术,将需要的模块动态加载,其他模块不提供,数据库的对应脚本写在各自模块中。另外,还能动态加载新的模块,实现升级、卸载自动化。
2012年6月27日 09:31
-
我感觉这跟构件开发的思路是一样的吧,对于java web方面来说应该把一个模块的类库封装在一起打成jar包,视图的东西就不好分清了,只能是用户权限那块将资源控制到页面级应该可以解决,但是东西还是那么多,另外可以考虑多做几套根据实际使用。你这个问题很好,继续跟踪你的话题。
2012年6月27日 08:40
相关推荐
本“maven 模块化项目demo”旨在展示如何使用Maven构建和管理模块化的Java应用。 Maven的核心概念是“项目对象模型”(Project Object Model,POM),它是一个XML文件,包含了项目的基本信息、依赖关系、构建配置...
- **Docker化**:使用Docker打包应用,实现标准化部署,简化运维工作。 - **Kubernetes或Mesos**:借助容器编排平台,自动化管理和调度服务实例,提高部署效率。 - **持续集成/持续部署(CI/CD)**:通过Jenkins等...
通过上述技术的组合,这个项目实现了前端开发的自动化和模块化,但描述中提到这仅是最简单的实现方式,意味着还有很大的优化空间。例如,可以进一步优化Webpack的配置以减少打包时间,使用更多的Gulp插件以覆盖更多...
SpringBoot 模块化框架是现代企业级应用开发中常用的一种技术栈,它结合了Spring框架的灵活性和方便性,并引入了模块化的概念,使得项目结构更加清晰,代码复用性更高,便于团队协作和后期维护。下面我们将深入探讨...
总结而言,这份文件详细阐述了模块化机器人控制系统的设计和实现,不仅讨论了其设计理念、架构特点,还包括了实现的技术细节和实践应用。同时,它还涉及到了相关技术的发展背景和未来趋势,为机器人控制系统的设计和...
模块化可以将大型项目拆分为可重用、独立的组件,便于团队协作,降低代码的耦合度,提高开发效率。此外,模块化还有助于代码的部署,通过按需加载,减少首屏加载时间,提升用户体验。 **CommonJS与AMD的简述** ...
- 在实际学习和使用FisherMan项目时,可以研究其目录结构、代码组织以及关键类和协议的设计,理解其如何实现模块化和组件化,以及如何在实践中有效地解耦。 5. **Swift开发框架** - Swift开发框架如MvvmCross、...
在Java 9之前,Java平台已经广泛使用包(Packages)来组织代码,但这种方式存在一些局限性,例如无法很好地封装Java平台内部的实现细节,这在Java 9模块化中得到了有效的解决。 Koushik Kothagal所著的《Modular ...
而"Maven模块化简单的SSH"这个标题意味着我们将探讨如何使用Maven构建工具来实现SSH(Spring、Struts和Hibernate)框架的模块化项目。 **Maven模块化** Maven是Apache软件基金会开发的一款项目管理和集成工具,它...
总的来说,J2EE项目模块化开发借助Spring、MyBatis和Maven,实现了代码的解耦,提高了代码的可读性和可维护性,同时方便团队协作和项目的持续集成。通过合理地划分模块,我们可以更好地管理和控制项目的复杂性,提升...
在本文中,我们将深入探讨如何使用Vue2.x...通过以上步骤,我们可以构建一个基于Vue2.x的模块化项目,实现接口、Vuex和路由的自动化获取。这样的项目结构有助于提高代码质量和开发效率,同时便于团队协作和后期维护。
本文将深入探讨一个基于Ansible自动化部署的Maven示例项目的设计与实现。该项目的设计源码包含了多种文件类型和编程语言,以实现一个多功能的自动化部署流程。 首先,Ansible作为自动化工具,在本项目中扮演着核心...
本项目"基于servlet3.1,实现模块化扩展"旨在利用这些特性来构建一个可扩展、模块化的Web应用程序。 Servlet 3.1引入了以下几个关键知识点: 1. **异步处理**:Servlet 3.1引入了异步Servlet的概念,允许在服务...
标题中的“Node.js-Node.js实现Git分布式自动化部署系统”表明我们要探讨的是如何利用Node.js构建一个基于Git的自动化部署流程。在现代软件开发中,自动化部署是提高效率、减少错误的关键步骤。Git作为最流行的...
在JavaScript中,模块化可以通过以下几种方式实现: 1. CommonJS:CommonJS 是一种在Node.js环境中广泛使用的模块化规范,通过`require`函数引入模块,`module.exports`或`exports`导出模块。它允许同步加载模块,...
在当今信息飞速发展的时代,软件开发与部署的自动化已经成为提高开发效率与降低错误率的重要手段...通过分析该项目的设计与实现,开发团队可以学习如何构建更加高效的自动化部署方案,从而提升项目的可维护性与可靠性。
在"vite+vue3动态模块化导入并使用pinia"的项目中,我们可以通过以下步骤实现动态模块化导入和使用Pinia: 1. **配置Vite**:在`vite.config.js`中,我们需要配置Vue3和Pinia的插件,如`@vitejs/plugin-vue`和`vite...
为了提高效率,人们通常会采用自动化部署工具,本项目正是针对这一需求提供了一个开源解决方案——"Python项目自动化多服务器部署的工具"。 这个开源项目的核心目标是简化Python应用的部署流程,使得开发者能够快速...
9. **设计说明书**:设计说明书是项目的重要组成部分,它通常会解释系统的架构、模块划分、流程图和异常处理策略,有助于理解整个自动化部署系统的运作。 10. **课程作业教程**:标签表明这是一个教学性质的资源,...
模块化通过`module-info.java`文件来实现,该文件定义了模块的名称、导出的包以及模块所依赖的其他模块。在进行Java模块化开发时,首先需要在项目中创建这样的模块描述文件,并在其中声明模块的名称和其依赖关系。 ...