日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Springboot+Maven做啟動類與業務模塊分離的架構模式

作者:涼拌海蜇絲 更新時間: 2022-05-17 編程語言
之前的項目一直是啟動類與Controller,Service,Mapper等包同級。Maven僅僅是引入其他模塊或者第三方Jar包工具。
但是最新接手一套項目的架構非常有趣,也是記錄一下分享一下,直接上示意圖:

在這里插入圖片描述

如果按照傳統的模式,ABC每個子模塊都會有各自的啟動類。但是當前模式下:

上圖一共五個Maven項目,父模塊包含著四個子模塊,子模塊中有一個就是負責啟動ABC那個子模塊的啟動類,ABC三套子模塊中,又有各自的controller,service,mapper的包,然而僅需要ABC三個子模塊的controller的包名路徑一樣(??最好要保持一致,不然該案例的配置會掃描不到controller!!假設為com.jojo.zoo),那么啟動類指定掃描路徑就寫成:

@SpringBootApplication(scanBasePackages = {"com.jojo.zoo"})

然后還要在啟動類模塊的pom文件中,把ABC模塊都引入進來即可

如果不想啟動類模塊直接引入ABC,那就在父模塊中的引入ABC:

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>com.jojo.zoo</groupId>
			<artifactId>jojo-A</artifactId>
			<version>${jojo.version}</version>
		</dependency>

		<dependency>
			<groupId>com.jojo.zoo</groupId>
			<artifactId>jojo-B</artifactId>
			<version>${jojo.version}</version>
		</dependency>

		<dependency>
			<groupId>com.jojo.zoo</groupId>
			<artifactId>jojo-C</artifactId>
			<version>${jojo.version}</version>
		</dependency>
	</dependencies>
</dependencyManagement>
父模塊的module必須包含ABC和啟動類模塊
<modules>
	<module>jojo-start</module>
	<module>jojo-A</module>
	<module>jojo-B</module>
	<module>jojo-C</module>
</modules>
這樣更方便統一管理對應版本, 然后在XXX-Starter啟動類模塊的pom中加入:
<dependencies>
	<dependency>
		<groupId>com.jojo.zoo</groupId>
		<artifactId>jojo-A</artifactId>
	</dependency>

	<dependency>
		<groupId>com.jojo.zoo</groupId>
		<artifactId>jojo-B</artifactId>
	</dependency>

	<dependency>
		<groupId>com.jojo.zoo</groupId>
		<artifactId>jojo-C</artifactId>
	</dependency>
</dependencies>

這樣就能正常啟動,并且掃描到ABC三模塊下的所有Controller了

為什么要這樣拆分?

大佬說,部署的時候是用不到啟動類的,所以根本不需要打包那一塊代碼,拆分出來更加整潔干凈;同時也能更加靈活的組合對應模塊,模塊代碼分離度更高

最后,任何情況下都要記得刷maven,clean + install

原文鏈接:https://blog.csdn.net/whiteBearClimb/article/details/124756584

欄目分類
最近更新