2 回答

TA貢獻(xiàn)1875條經(jīng)驗 獲得超3個贊
考慮到附加的組件圖,我建議研究微服務(wù)架構(gòu)。您將能夠按域(電影、客戶、評論)分離職責(zé),甚至建立單獨的訪問規(guī)則(例如,電影目錄的匿名訪問和對客戶數(shù)據(jù)的安全訪問)。每個數(shù)據(jù)存儲(DB1、DB2 等)將僅鏈接到負(fù)責(zé)的服務(wù)。此外,您將能夠根據(jù)使用情況準(zhǔn)確擴(kuò)展必要的服務(wù),例如 5 種電影服務(wù)、2 種客戶數(shù)據(jù)服務(wù)和 3 種評論服務(wù)。
Gradle 或 Maven 將允許您輕松構(gòu)建具有多個子模塊的大型項目。您的一些模塊將是應(yīng)用程序模塊,其中一些將是共享模塊(模型、實用程序等)。
此外,我建議為每個項目設(shè)置一個單獨的 repo,以簡化變更管理和審查——這在大規(guī)模上將非常有幫助。
示例 Gradle 結(jié)構(gòu):
根模塊
楷模
實用程序
電影服務(wù)
客戶服務(wù)
審查服務(wù)
每個服務(wù)子模塊都將包含自己的 @SpringBootApplication 以及控制器、服務(wù)和存儲庫。當(dāng)然,您需要將 Spring Boot Gradle 插件添加到每個服務(wù)子模塊。
更新: 展望未來,將 Docker 配置添加到每個服務(wù)子模塊并將每個應(yīng)用程序作為 Docker 容器運行是明智的。Docker 將大大簡化開發(fā)。

TA貢獻(xiàn)1850條經(jīng)驗 獲得超11個贊
如果你能做這樣的事情,那將是模棱兩可的。例如,當(dāng)您調(diào)用 localhost:8080/app -> 哪個控制器應(yīng)該響應(yīng)?也許您需要實現(xiàn)一個調(diào)度程序,其中包含一些應(yīng)該調(diào)用哪些控制器的標(biāo)準(zhǔn)。我不明白這種分離有什么好處。您可以將您的應(yīng)用程序劃分為庫并將它們添加為依賴項。
添加回答
舉報