2016-02-11 90 views
3

使用spring 4和maven,我习惯于创建分层应用程序,其中子项目被编译成jar文件,并且根项目编译成一个war文件。防爆春季启动项目中的多个Web应用程序

Web Layer 
     | 
Service Layer 
     | 
    Dao Layer 

(Shared Common Project) 

使用这个架构,我还可以创建具有共同的父POM 2 Web应用程序和共享相同的子项目

Web Layer  Admin Web Layer 
     \  /
      | 
     Service Layer 
      | 
      Dao Layer 

(Shared Common Project) 

是否有可能实现在春季启动同样的事情?我不想将这两个Web项目结合起来。他们服务完全不同的目的。他们有不同的登录机制,differn't用户,differen't角色等

澄清

如果我是建设有弹簧4和Maven这个应用程序,Web应用程序将被编译成2战。然后,它们可以在同一端口上的单个服务器上运行。我试图将这种配置与spring启动相匹配,但由于spring-boot已将tomcat嵌入到其中,因此我不确定这两个应用程序如何在同一个实例上运行。

+0

这样做的意义何在? – Marged

+0

它们是2个不同的Web应用程序,它们共享许多相同的服务,但在视图和安全性方面没有任何影响。 –

+1

在Spring Boot中没有任何东西阻止你完成你所描述的任务。这听起来像你需要两个独立的Spring Boot应用程序,它们依赖于公共子项目。 –

回答

0

步骤:

  1. 创建服务层单独的项目模块。

  2. 为DAO图层创建一个单独的项目模块。

  3. 为Web层创建一个SPRING BOOT APP,Web层依赖于服务层和DAO层。

  4. 为管理Web层创建SPRING BOOT应用程序,管理Web层取决于服务层和DAO层。

通过这种设计,您将能够单独运行Web层和Admin Web层,同时使用公共服务和dao层。

+0

我怎样才能同时运行它们?如果我运行命令mvn spring-boot:在Web模块上运行,然后尝试在管理模块上再次运行它,不会因为端口已被使用而出现错误? –

+0

如果您有两个不同的弹簧引导应用程序并具有application.properties或application.yml。定义这个属性server.port = 8010或者你喜欢的任何端口(它还没有被使用)。 – Hbargujar

+0

在我给出的例子中,Web应用程序将被编译成2次使用spring 4和maven的战争。然后,它们可以在同一端口上的服务器上运行。我试图匹配这个配置。这就是我想要解决的问题,但是由于spring-boot已经嵌入了tomcat,所以我不确定这两个应用程序如何在同一个实例上运行。 –

相关问题