如何将不同战争中的Web应用程序拆分为模块?

时间:2015-07-09 12:06:19

标签: java spring maven web-applications

我有一个具有不同功能的Web应用程序,例如地图视图,仪表板,报告等。但是现在,我们计划将应用程序拆分为不同的模块,例如地图模块,仪表板模块等,以便将插件转换为根据要求。由于所有模块都有各自的htmls,js,controller,dao层,如何将这些模块划分为独立模块?它会是战争还是jar文件? 需要一个可以帮助我前进的建议或例子。

感谢。

4 个答案:

答案 0 :(得分:3)

如果您有不同的模块,具有独立功能。 可能

我建议你 首先 找到所有网络模块共有的功能,所以 common-module ,应该在服务器的库文件夹中安装(例如jar)

然后,所有模块都可以安装在服务器的 webapps 中(在tomcat中称为webapps)。

<强> 重要的:

您必须注意不要在每个Web模块中复制库,否则会产生冲突。所有常见的jar(库或您自己的模块都应安装在 libs 文件夹中)。

如果您使用 maven ,我建议您使用包含所有依赖项的父maven项目,然后使用所有模块需要这些依赖项可以将其导入为 提供

答案 1 :(得分:1)

根据您在此处分享的要求,微服务可能是您最好的方法。每个模块,即报告,仪表板等将是一个单独的微服务。如果使用spring boot,最终会创建多个jar文件,每个jar文件都可以作为一个单独的进程在VM上启动,每个jar文件都有自己的容器(tomcat)。使事情变得简单。

答案 2 :(得分:0)

如果项目的所有子模块都紧密耦合,则很难将其拆分。我建议您使用旧项目的参考开发新的不同项目。没有技术可以将现有项目拆分为不同的war文件。

答案 3 :(得分:0)

如果使用Maven,则可以创建具有所有常见依赖关系的父级,并且应在其pom.xml中的<modules> </modules>标记中定义所有模块。请注意工件的版本,当您在子pom.xml的父标记中引用它们时,它们应该是相同的版本。

关于微服务,它们是独立的服务,并且在每台服务器上仅运行一项服务。因此,如果您有多个模块,或者每台服务器上有多个服务,那么它将与MS概念冲突。