每個人都應該知道的 Spring Boot 基本註解

已發表: 2021-12-13

Java Spring Framework 是一個開源的企業級框架,用於創建在 Java 虛擬機 (JVM) 上運行的生產級獨立應用程序。 為此,Java Spring Boot 是一個使用 Spring Framework 簡化和加速 Web 應用程序和微服務開發的工具。 為此,Java Spring Boot 利用了三個核心功能——自動配置、自以為是的配置方法以及創建獨立應用程序的潛力。 這些核心功能的融合提供了一個工具,允許開發人員以最少的配置設置基於 Spring 的應用程序。

在註解之前,Spring Framework 的行為主要是由 XML 配置控制的。 但是,Spring Boot 註解極大地改變了您配置 Spring Framework 行為的方式。

在本文中,我們將介紹 Spring Framework 中的一些基本註解。

目錄

什麼是 Spring Boot 註解?

Spring Boot 註解是元數據的一種形式。 它們本身不是正在開發的應用程序的一部分,而是提供有關程序的補充數據。 註釋對其註釋的代碼的操作沒有直接影響,也不會改變已編譯程序的操作。

Spring 應用程序需要大量的配置。 Spring Boot 是一個基於 Spring 框架的自以為是的框架。 它最大限度地減少了配置工作和样板文件需要開始。 Spring Boot 註釋是獲得對 Spring 框架的控制、指導框架以及在需要時覆蓋其默認值的關鍵。 與從頭開始構建等效功能相比,這些註釋易於使用且速度更快。

每個人都應該知道的 Spring Boot 註解

儘管 Spring Boot 適用於 Java、Groovy 和 Kotlin,但我們將在討論重要的 Spring Boot 註釋時將重點放在 Java 上。

1.@配置

@Configuration 用於定義 bean 的類中。 XML 配置文件的類似物是用作 bean 定義源的類級別註釋。 @Configuration 註解的 Java 類本身就是一個配置,並且具有配置和實例化依賴項的方法。

例子:

@配置

公共類巴士

{

@BeanBus 引擎()

{

返回新的總線();

}

}

2.@豆

作為 XML <bean> 標記的替代方案,@Bean 註釋用於方法級別,以指示方法生成要由 Spring 容器管理的 bean。 此註解與 @Configuration 一起創建 Spring beans。 @Configuration 具有配置和實例化依賴項的方法,這些方法由@Bean 註釋。

例子:

@豆角,扁豆

公共 BeanExample beanExample ()

{

返回新的 BeanExample (),

}

3.@ComponentScan

@ComponentScan 註釋用於掃描一個 bean 包。 它與 @Configuration 註釋一起使用,讓 Spring 知道必須掃描帶註釋組件的包。

例子:

@ComponentScan(basePackages = “com.xyz”)

@配置

公共類 ScanComponent

{

//…

}

4.@組件

@Component 註解用於類上表示 Spring 組件。 它是一個類級別的註釋,在自動掃描期間將類轉換為 Spring bean。

例子:

@零件

公共課教師

{

……

}

5.@EnableAutoConfiguration

@EnableAutoConfiguration 註解通常放置在主應用程序類上,它隱式定義了一個基本搜索包。 基於類路徑設置、各種屬性設置和其他 bean,@EnableAutoConfiguration 指示 Spring Boot 開始添加 bean。

6.@SpringBootApplication

@SpringBootApplication 註解增加了三個註解——@Configuration、@EnableAutoConfiguration 和@ComponentScan。 在設置Spring Boot項目時在應用類上使用,將@SpringBootApplication註解的類放在基礎包中。 @SpringBootApplication 進行組件掃描,但僅掃描子包。

7.@存儲庫

@Repository 註解用於直接訪問數據庫的 Java 類。 它用作履行數據訪問對像或存儲庫角色的類的標記。

例子:

@Repository

公共類TestRepository

{

公共無效刪除()

{

// 持久化代碼

}

}

8.@服務

它是一個類級別的註解,標記一個 Java 類執行某種服務,例如執行業務邏輯、執行計算或調用外部 API。 @Service 註解是@Component 註解的一種特殊形式,用於服務層。

例子:

@服務

公共類TestService

{

公共無效服務1()

{

// 業務代碼

}

}

9.@Autowired

此註解隱式註入對象依賴關係並應用於字段、構造函數和 setter 方法。 當在字段上使用 @Autowired 並且使用屬性名稱傳遞字段的值時,Spring 會自動為字段分配傳遞的值。

10.@控制器

@Controller 註解用於在應用程序中充當控制器的 Java 類。 它允許在類路徑中自動檢測組件類,並為它們自動註冊 bean 定義。 @Controller 註解通常與@RequestMapping 一起使用,使用@Controller 註解的Java 類可以處理多個請求映射。

例子:

@控制器

@RequestMapping(“汽車”)

公共類 CarsController

{

@RequestMapping(值=“/{name}”,方法= RequestMethod.GET)

公共員工 getCarsByName()

{

還車模板;

}

}

11.@請求映射

@RequestMapping 註解用於方法和類級別。 它用於將 Web 請求映射到指定的處理程序方法和處理程序類。 當在方法上使用 @RequestMapping 時,它會給出將在其上執行處理程序方法的 URL。 相反,當在類級別使用註解時,它會創建一個基本 URL,控制器將用於該 URL。 因此,每個處理程序方法都有其各自的請求映射,而類級別的請求映射保持不變。

例子:

@控制器

公共類 FlowersController

{

@RequestMapping (“/red-color/flowers”)

public String getAllFlowers(模型模型)

{

//應用代碼

返回“花單”;

}

12.@限定符

當需要對依賴注入過程進行更多控制時,@Qualifier 與 @Autowired 一起使用。 @Qualifier 註解可以在方法參數或單個構造函數參數上指定。 當開發人員創建多個相同類型的 bean 時,通常會出現混淆,但其中只有一個必須與屬性連接。 @Qualifier 註釋可以方便地消除這些混淆。

例子:

@零件

公共類 BeanB1 實現 BeanInterface {

//

}

@零件

公共類 BeanB2 實現 BeanInterface {

//

}

在上面的例子中,BeanInterface 是由 BeanB1 和 BeanB2 這兩個 bean 實現的。 現在,如果 BeanA 自動裝配這個接口,Spring 將不知道它應該注入兩個實現中的哪一個。 您可以使用 @Qualifier 註釋解決此問題。 有了這個註解,Spring 將知道要自動裝配哪些 bean。

@零件

公共類 BeanA {

@自動連線

@Qualifier(“beanB2”)

私有 BeanInterface 依賴;

}

13.@值

@Value 註解用於字段、方法參數和構造函數參數級別。 它表示用於初始化屬性的參數或字段的默認值表達式。

14.@懶惰

@Lazy 註解應用於組件類。 在啟動時,默認情況下會創建和配置所有自動裝配的依賴項。 但是如果開發者想要懶惰地初始化一個bean,可以使用@Lazy 註解。 因此,bean 僅在請求時才被創建和初始化。 @Lazy 註解也可用於@Configuration 類,這意味著該@Configuration 中的所有@Bean 方法都將延遲啟動。

雖然這個 Java Spring Boot 註釋列表並不詳盡,但它或多或少涵蓋了每個開發人員或 Java 愛好者都應該知道的最基本的註釋。 畢竟,Spring Boot 簡化了基於 Spring 的應用程序的開發,值得了解。

利物浦約翰摩爾斯大學數據科學理學碩士

如果您是一名有抱負的數據科學家,那麼這是向最優秀的人學習的機會。 upGrad 與利物浦約翰摩爾斯大學合作提供在線數據科學理學碩士課程,專為希望磨練數據科學技能和知識的在職專業人士而設計。

以下是一些節目亮點一覽:

  • LJMU 碩士學位和 IIT 班加羅爾執行 PGP
  • 500 多個小時的學習時間,包括現場會議、案例研究和項目
  • 全面覆蓋 14 多種工具和軟件
  • 三個獨特的專業
  • 360 度專業的職業幫助
  • 同行學習和行業網絡

upGrad 的沉浸式和行業相關的學習計劃已經影響了全球超過 500,000 名在職專業人士,並繼續在高等教育科技行業設定高標準。 因此,立即申請並加入遍布 85 個國家/地區的 40,000 多名全球學習者群!

從世界頂級大學在線學習數據科學課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

Spring Boot 啟動器的目的是什麼?

Spring Boot 啟動器是允許在類路徑中添加 jar 的依賴描述符。 在 Spring Boot 框架中,每個 starter 都有以下命名模式:spring-boot-starter-*,其中 * 代表特定的應用程序類型。

@SpringBootApplication 和 @EnableAutoConfiguration 有什麼區別?

@EnableAutoConfiguration 的主要任務是啟用 Spring Boot 應用程序的自動配置功能。 相反,@SpringBootApplication 結合了三個註解——@ComponentScan 用於組件掃描,@Configuration 用於 Spring 框架上基於 Java 的配置,@EnableAutoConfiguration 允許在 Spring Boot 應用程序中進行自動配置。

Spring Boot 可以在沒有 SpringBootApplication 的情況下運行嗎?

使用 @SpringBootApplication 創建 Spring Boot 應用程序不是強制性的。 您仍然可以單獨使用@EnableAutoConfiguration 和@Configuration。