知識庫 / Spring / Spring Boot RSS 訂閱

Spring Boot 項目推薦包結構

Spring Boot
HongKong
4
12:57 PM · Dec 06 ,2025

1. 概述

在構建新的 Spring Boot 項目時,我們組織類的方式具有很高的靈活性。

不過,仍然有一些建議需要我們牢記。

2. 不使用默認包

鑑於 Spring Boot 註解(如 @ComponentScan@EntityScan@ConfigurationPropertiesScan)和 @SpringBootApplication)使用包來定義掃描位置,我們建議避免使用默認包——即,我們應該始終在我們的類中聲明包

3. 主類

<em @SpringBootApplication</em> 註解會觸發當前包及其子包的組件掃描。因此,最佳實踐是將項目的主類放在基礎包中

這可以配置,我們仍然可以通過手動指定基礎包來定位它。但是,在大多數情況下,這個選項無疑更簡單。

更重要的是,基於JPA的項目還需要在主類上添加一些額外的註解:

@SpringBootApplication(scanBasePackages = "example.baeldung.com")
@EnableJpaRepositories("example.baeldung.com")
@EntityScan("example.baeldung.com")

請注意,可能需要進行額外的配置。

4. 設計

軟件包結構的設計獨立於 Spring Boot。因此,它應該由我們項目的需求來驅動。

一種流行的策略是按功能進行包管理,這可以增強模塊化並允許子包內部實現包私有可見性。

例如,可以參考 Spring PetClinic 項目。該項目由 Spring 開發人員構建,以展示他們對如何構建常見 Spring Boot 項目的看法。

該項目採用按功能進行包管理的方式組織,因此我們有主包 org.springframework.samples.petclinic 和 5 個子包:

  • org.springframework.samples.petclinic.model
  • org.springframework.samples.petclinic.owner
  • org.springframework.samples.petclinic.system
  • org.springframework.samples.petclinic.vet
  • org.springframework.samples.petclinic.visit

每個包代表應用程序中的一個領域或功能,將高度耦合的類分組在一起並啓用高凝聚性

5. 結論

在本文中,我們探討了在構建 Spring Boot 項目時需要考慮的一些建議,並瞭解瞭如何設計包結構。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.