maven模塊化開發(fā)部署實現(xiàn)方案
maven模塊化開發(fā)部署
之前一直維護迭代的產(chǎn)品,因為有很多客戶使用.有些用戶有定制化需求,需要添加新的模塊功能.因此需要平臺主體功能迭代的同時,非主體功能和定制化功能插件化.
一.實現(xiàn)方案
分為開發(fā)和部署兩個步驟:
1.開發(fā)
已經(jīng)確定肯定是采用maven父子工程,單獨的模塊可獨立開發(fā)及獨立部署.
原因是產(chǎn)品的主體功能(模塊1)和非主體功能(模塊2)完全解耦,
不能通過模塊1引用模塊2的代碼.因為這樣會導致部署主體功能必須引入非主體功能,
達不到模塊化部署的目的,必須引入整體部署,這個有悖瓶產(chǎn)品功能插件化的初衷.
2.部署
基于模塊開發(fā)的代碼獨立性,可以是插件式整合到主體產(chǎn)品,也可以作為一個獨立運行的模塊部署,輔助于主體產(chǎn)品.部署可以有兩種場景:
1.直接整合打成一個包,整體部署
//產(chǎn)品主體+非主體模塊壓入后直接部署 //主體為jar,將非主體模塊的jar解壓并壓入主體jar //需要注意的是,被壓入的文件夾結構必須與jar的內部結構一致(文件夾層) jar uvf 主體.jar ./非主體模塊的jar解壓后的文件夾/
2.分開打包,主體產(chǎn)品部署后引導式插件部署
//方案可以有兩種. //1.引導非主體jar解壓并入主體jar,重啟主體jar,插件服務生效(插入過程見場景1) //2.引導非主體jar獨立運行,輔助主體jar,提供服務
額外知識點:將解壓后的jar重新壓縮為jar的命令為 jar cvfM0 new.jar ./之前解壓的
補充:
maven多模塊多配置文件整合方案
一、背景
在Spring Boot開發(fā)多模塊應用時,每個模塊可能有自己的配置文件。當模塊之間存在多重依賴關系時,如果需要將多個模塊配置文件整合,可以使用Spring Boot的配置文件的導入功能。
二、解決方案
以A模塊依賴于B和C模塊為例,需要將B和C模塊的配置文件整合到A模塊的配置中。假設B模塊的配置文件名為application-dev.yml,C模塊的配置文件名為application-test.yml,需要將它們整合到A模塊的配置文件application.yml中。
1. 在B和C模塊中添加配置文件
在B和C模塊的src/main/resources/目錄下添加對應的配置文件。
2. 在A模塊中添加配置文件
在A模塊的src/main/resources/目錄下添加application.yml配置文件,用于整合B和C模塊的配置文件。
3. 在A模塊的application.yml配置文件中添加導入配置
在A模塊的application.yml配置文件中添加spring.config.import屬性來導入B和C模塊的配置文件。
示例:
spring:
config:
import:
-classpath:/path/to/B/config/application-dev.yml
-classpath:/path/to/C/config/application-test.yml4. 運行A模塊
通過啟動A模塊,可以驗證是否成功整合了B和C模塊的配置文件。
5. 高級配置
如果B和C模塊的配置文件名稱相同,運行時會有配置文件覆蓋的情況(注意是同名、編譯后同文件夾的情況下),此時可以使用spring.config.name和spring.config.location屬性來區(qū)分它們。
例如:
在B模塊的src/main/resources/目錄下添加名為application-dev.yml的配置文件,同時在application.yml中添加:
spring:
config:
location:classpath:/path/to/B/config/在C模塊的src/main/resources/目錄下添加名為application-dev.yml的配置文件,同時在application.yml中添加:
spring:
config:
location:classpath:/path/to/C/config/這樣,A模塊的application.yml就可以這樣引入:
spring:
config:
location:classpath:/path/to/A/config/
import:
-classpath:/path/to/B/config/
-classpath:/path/to/C/config/這種方式可以讓同名的配置文件不會相互覆蓋。(注意使用這種方式的時候需要在classpath對應目錄中添加編譯后的配置文件,maven用resource標簽或者構建工具中的資源插件等)
三、結語
以上就是在Spring Boot中使用spring.config.import將多模塊配置文件整合的過程。通過這種方式,可以更好地管理多模塊應用的配置文件,提高開發(fā)效率。當然這是一種解決方案,或者也可以將配置文件單獨放入獨立的配置模塊,其他模塊在進行依賴等等。結束!
到此這篇關于maven模塊化開發(fā)部署的文章就介紹到這了,更多相關maven模塊化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
spring?boot整合mongo查詢converter異常排查記錄
這篇文章主要為大家介紹了spring?boot整合mongo查詢時拋出converter異常的排查解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03
詳解SpringMVC組件之HandlerMapping(一)
這篇文章主要介紹了詳解SpringMVC組件之HandlerMapping(一),HandlerMapping組件是Spring?MVC核心組件,用來根據(jù)請求的request查找對應的Handler,在Spring?MVC中,有各式各樣的Web請求,每個請求都需要一個對應的Handler來處理,需要的朋友可以參考下2023-08-08

