Java 具有多角度应用程序体系结构的一个项目

Java 具有多角度应用程序体系结构的一个项目,java,angularjs,spring,maven,Java,Angularjs,Spring,Maven,我需要开发一个新的项目,将包含几个AngularJS应用程序,我有一个关于项目架构的问题 该解决方案将运行5个webapp(目前),客户可以选择他想要的模块。这些应用程序将仅在其网络上可用 我想有两个解决办法 第一个解决方案:开发5个war(根据客户需求轻松部署war) 第二个解决方案:创建一个独特的war(并在数据库中配置可用的应用程序) 关于第一种解决办法: 我想为每个webapp创建一个maven模块+一个“核心”模块,该模块将包含在每个webapp模块中,并包含spring配置(每个

我需要开发一个新的项目,将包含几个AngularJS应用程序,我有一个关于项目架构的问题

该解决方案将运行5个webapp(目前),客户可以选择他想要的模块。这些应用程序将仅在其网络上可用

我想有两个解决办法

  • 第一个解决方案:开发5个war(根据客户需求轻松部署war)

  • 第二个解决方案:创建一个独特的war(并在数据库中配置可用的应用程序)

关于第一种解决办法:

我想为每个webapp创建一个maven模块+一个“核心”模块,该模块将包含在每个webapp模块中,并包含spring配置(每个webapp之间95%相同)、实体、dao和一些共享服务。你认为这样做有什么问题吗

关于第二种解决办法

事实上,我甚至不知道如何做,但我认为这是可行的(也许有一个http过滤器?)


那么,了解到维护性优于性能的最佳解决方案是什么呢?

基本上,您可能需要的是一个具有前端层、服务层和DAO层的项目

准备三个单独的maven项目,然后将它们添加为maven依赖项,或者在单个项目中创建适当的包结构

在前端,您可以使用带有切换页面的单个项目,而不是使用5个不同的项目。通过spring配置的mvc dispatcher,您可以从切换页面将请求定向到所需的相应应用程序

在我的建议中,前端的文件夹结构如下所示

-webapp 
 |_web-inf
  |_pages
   |_app
    |_project A
    |_project B
     |_scripts
      |_projects B's sub module A
      |_projects B's sub module B
       |_controllers
       |_factories
       |_model
       |_services
       |_views
      |_projects B's sub module C
      |_projects B's sub module D
      |_projects B's sub module E
    |_project C
    |_project D
    |_project E
您可以使用mvc dispatcher在应用程序中映射资源,如下所示:

<mvc:resources mapping="/projectA/scripts/**" location="/WEB-INF/pages/app/projectA/scripts/"/>
<mvc:resources mapping="/projectB/scripts/**" location="/WEB-INF/pages/app/projectB/scripts/"/>
<mvc:resources mapping="/projectC/scripts/**" location="/WEB-INF/pages/app/projectC/scripts/"/>
<mvc:resources mapping="/projectD/scripts/**" location="/WEB-INF/pages/app/projectD/scripts/"/>
<mvc:resources mapping="/projectE/scripts/**" location="/WEB-INF/pages/app/projectE/scripts/"/>


希望这会有帮助

因此根据您的解决方案,我必须进行一场战争?这取决于您将如何分离您的项目。假设您要分别创建前端、服务/控制器和DAO。然后您可能需要两个war文件(fron-end和services/controllers.DAO可以作为Service/Controller的maven依赖项添加),如果您更喜欢在同一个项目中的所有客户端和服务器端实现,那么显然您只需要war文件。但考虑到可扩展性,最好将前端和后端分开。很抱歉回复晚:)