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
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...