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