@SpringBootApplication和@SpringBootConfiguration的關係

文采杰出發表於2024-07-24

@SpringBootApplication 和 @SpringBootConfiguration 是 Spring Boot 框架中用於簡化配置的兩個重要註解。它們之間的關係和各自的作用如下:

@SpringBootConfiguration

@SpringBootConfiguration 註解實際上是一個特殊的 @Configuration 註解,它表示當前類是一個配置類。在 Spring 中,@Configuration 註解用於定義配置類,配置類可以替代傳統的 XML 配置檔案,用於配置 Spring 的 beans、元件掃描等。

不過,直接使用 @Configuration 註解並不會有太多與 Spring Boot 特定的功能整合,@SpringBootConfiguration 註解的出現更多的是為了標明這是一個由 Spring Boot 管理的配置類。在 Spring Boot 的自動配置過程中,會識別出使用 @SpringBootConfiguration 註解的類,並將其作為 Spring 應用的配置源。

@SpringBootApplication

@SpringBootApplication 註解是 Spring Boot 的核心註解之一,它通常用在 Spring Boot 的主類上。這個註解實際上是一個組合註解,它包含了以下三個註解:

  • @SpringBootConfiguration:表明該類是一個配置類,用於定義 Spring 的 beans 和元件。
  • @EnableAutoConfiguration:開啟 Spring Boot 的自動配置功能。Spring Boot 會根據新增的依賴和類路徑中的內容來自動配置應用程式。
  • @ComponentScan:啟用元件掃描,Spring Boot 會掃描指定的包及其子包下的類,查詢被 @Component、@Service、@Repository、@Controller 等註解標記的類,並將它們註冊為 Spring 的 beans。
    關係

從上面的描述中,我們可以看出 @SpringBootApplication 和 @SpringBootConfiguration 之間的關係是:

  • @SpringBootApplication 註解包含了 @SpringBootConfiguration 註解,意味著使用 @SpringBootApplication 註解的類同時也是一個配置類。
  • 在 Spring Boot 應用程式中,我們通常只需要在主類上使用 @SpringBootApplication 註解,而不需要顯式地使用 @SpringBootConfiguration 註解,因為 @SpringBootApplication 已經包含了它。

總結來說,@SpringBootConfiguration 註解用於定義一個配置類,而 @SpringBootApplication 註解則是一個組合註解,它包含了 @SpringBootConfiguration 以及其他兩個用於開啟自動配置和元件掃描的註解,是 Spring Boot 應用程式的入口點。

相關文章