SpringBoot 常用註解總結

来源:https://www.cnblogs.com/Yee-Q/p/18096639
-Advertisement-
Play Games

核心註解 1. @SpringBootApplication 主要用於開啟自動配置,它也是一個組合註解,主要組合了 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan 2. @EnableAutoConfiguration ...


核心註解

1. @SpringBootApplication

主要用於開啟自動配置,它也是一個組合註解,主要組合了 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan

2. @EnableAutoConfiguration

該註解組合了 @Import 註解,@Import 註解導入了 EnableAutoCofigurationImportSelector 類,它使用 SpringFactoriesLoader.loaderFactoryNames 方法把 spring-boot-autoconfigure.jar/META-INF/spring.factories 中的每一個 xxxAutoConfiguration 文件都載入到 IOC 容器,實現自動配置

3. @SpringBootConfiguration

@SpringBootConfiguration 註解繼承自 @Configuration,二者功能基本一致,標註當前類是配置類

4. @ComponentScan

自動掃描並載入符合條件的組件,如 @Component、@Controller、@Service、@Repository 等或者 bean 定義,最終將這些 Bean 載入到 IOC 容器


Bean 相關

1. @Controller

應用於控制層,DispatcherServlet 會自動掃描此註解的類,將 web 請求映射到註解 @RequestMapping 的方法上

2. @Service

應用於業務邏輯層

3. @Reponsitory

應用於數據訪問層(dao)

4. @Component

表示帶有該註解的類是一個組件,可被 SpringBoot 掃描並註入 IOC 容器

5. @Configuration

表示帶有該註解的類是一個配置類,通常與 @Bean 結合使用,@Configuration 繼承了 @Component,因此也能被 SpringBoot 掃描並處理

6. @Bean

@Configuration 註解標識的類,使用 @Bean 註解一個可返回 Bean 的方法,Spring 會將這個 Bean 對象放入 IOC 容器


依賴註入相關

1. @Autowired

可作用在屬性、方法和構造器,實現 Bean 的自動註入,預設根據類型註入

2. @Resource

作用同 @Autowired,預設通過名稱註入

3. @Qualifier

如果容器中有多個相同類型的 bean,僅僅靠 @Autowired 不足以讓 Spring 知道到底要註入哪個 bean,使用 @Qualifier 並指定名稱可以幫助確認註入哪個 bean

4. @Value

用於註入基本類型和 String 類型


WEB 相關

1. @RequestMapping

映射 web 請求,可以註解在類和方法上,@GetMapping 和 @PostMapping 是 @RequestMapping 的兩種特例,一個處理 get 請求,一個處理 post 請求

2. @RequestParam

獲取請求參數,示例如下:

// http://localhost:8080/api/test1?name=liu
@RequestMapping("/test1")
@ResponseBody
public String test1(@RequestParam("name")String name1){
    System.out.println(name1);
    return name1;
}

3. @PathVariable

獲取路徑參數,示例如下:

@RequestMapping(value = "user/{username}")
public String test(@PathVariable(value="username") String username) {
	return "user"+username;
}

4. @RequestBody

通過 HttpMessageConverter 讀取 Request Body 並反序列化為 Object,比如直接以 String 接收前端傳過來的 json 數據

5. @ResponseBody

將返回值放在 response 體內,返回的是數據而不是頁面,在非同步請求返回 json 數據時使用


AOP 相關

1. @Aspect

聲明一個切麵

2. @PointCut

聲明切點,即定義攔截規則,確定有哪些方法會被切入

3. @Before

前置通知,在原方法前執行

4. @After

後置通知,在原方法後執行

5. @Around

環繞通知,原方法執行前執行一次,原方法執行後再執行一次


其他註解

1. @Transactional

聲明事務

2. @ControllerAdvice

作用在類上,繼承了 @Component,因此也能被 SpringBoot 掃描並處理,提供對 Controller 類的攔截功能,配合 @ExceptionHandler、@InitBinder、@ModelAttribute 等註解可實現全局異常處理,全局參數綁定,請求參數預處理等功能

3. @Async

作用在方法,表示這是一個非同步方法

4. @EnableAsync

註解在配置類,開啟非同步任務支持

5. @Scheduled

註解在方法,聲明該方法是計劃任務

6. @EnableScheduling

註解在配置類,開啟對計劃任務的支持


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
一周排行
    -Advertisement-
    Play Games
  • 一個自定義WPF窗體的解決方案,借鑒了呂毅老師的WPF製作高性能的透明背景的異形視窗一文,併在此基礎上增加了滑鼠穿透的功能。可以使得透明窗體的滑鼠事件穿透到下層,在下層窗體中響應。 ...
  • 在C#中使用RabbitMQ做個簡單的發送郵件小項目 前言 好久沒有做項目了,這次做一個發送郵件的小項目。發郵件是一個比較耗時的操作,之前在我的個人博客裡面回覆評論和友鏈申請是會通過發送郵件來通知對方的,不過當時只是簡單的進行了非同步操作。 那麼這次來使用RabbitMQ去統一發送郵件,我的想法是通過 ...
  • 當你使用Edge等瀏覽器或系統軟體播放媒體時,Windows控制中心就會出現相應的媒體信息以及控制播放的功能,如圖。 SMTC (SystemMediaTransportControls) 是一個Windows App SDK (舊為UWP) 中提供的一個API,用於與系統媒體交互。接入SMTC的好 ...
  • 最近在微軟商店,官方上架了新款Win11風格的WPF版UI框架【WPF Gallery Preview 1.0.0.0】,這款應用引入了前沿的Fluent Design UI設計,為用戶帶來全新的視覺體驗。 ...
  • 1.簡單使用實例 1.1 添加log4net.dll的引用。 在NuGet程式包中搜索log4net並添加,此次我所用版本為2.0.17。如下圖: 1.2 添加配置文件 右鍵項目,添加新建項,搜索選擇應用程式配置文件,命名為log4net.config,步驟如下圖: 1.2.1 log4net.co ...
  • 之前也分享過 Swashbuckle.AspNetCore 的使用,不過版本比較老了,本次演示用的示例版本為 .net core 8.0,從安裝使用開始,到根據命名空間分組顯示,十分的有用 ...
  • 在 Visual Studio 中,至少可以創建三種不同類型的類庫: 類庫(.NET Framework) 類庫(.NET 標準) 類庫 (.NET Core) 雖然第一種是我們多年來一直在使用的,但一直感到困惑的一個主要問題是何時使用 .NET Standard 和 .NET Core 類庫類型。 ...
  • WPF的按鈕提供了Template模板,可以通過修改Template模板中的內容對按鈕的樣式進行自定義。結合資源字典,可以將自定義資源在xaml視窗、自定義控制項或者整個App當中調用 ...
  • 實現了一個支持長短按得按鈕組件,單擊可以觸發Click事件,長按可以觸發LongPressed事件,長按鬆開時觸發LongClick事件。還可以和自定義外觀相結合,實現自定義的按鈕外形。 ...
  • 一、WTM是什麼 WalkingTec.Mvvm框架(簡稱WTM)最早開發與2013年,基於Asp.net MVC3 和 最早的Entity Framework, 當初主要是為瞭解決公司內部開發效率低,代碼風格不統一的問題。2017年9月,將代碼移植到了.Net Core上,併進行了深度優化和重構, ...