2016-02-11 87 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,所以我不確定這兩個應用程序如何在同一個實例上運行。 –

相關問題