Spring Boot 常用注解分類

目錄

  • 1.核心注解:
  • 2.配置相關注解:
  • 3.控制器相關注解:
  • 4.數據訪問相關注解:
  • 5.測試相關注解:
  • 6.條件注解:
  • 7.AOP相關注解:
  • 8.定時任務相關注解:
  • 9.消息隊列相關注解:
  • 10.Spring Security相關注解:
  • 11.Swagger注解(用于API文檔生成):
  • 12.Spring緩存相關注解:
  • 13.Spring定時任務相關注解:
  • 14.Spring Cloud相關注解(用于微服務開發):

1.核心注解:

@SpringBootApplication:一個復合注解,用于標識Spring Boot應用程序的入口點。它組合了@Configuration、@EnableAutoConfiguration和@ComponentScan注解,提供了自動配置和組件掃描的功能。
@Configuration:將類標識為配置類,類似于傳統的XML配置文件,用于定義Bean的創建和配置。
@EnableAutoConfiguration:啟用Spring Boot的自動配置機制,根據類路徑和其他條件自動配置Spring應用程序。
@ComponentScan:掃描指定包及其子包下的組件(包括@Service、@Repository、@Component和@Controller等)。

2.配置相關注解:

@Value:用于將外部屬性值注入到Spring Bean中。
@ConfigurationProperties:綁定外部配置文件中的屬性到Java Bean。
@PropertySource:指定外部屬性文件的位置。
@Conditional:根據條件動態添加或排除Bean的裝配。

3.控制器相關注解:

@RestController:組合注解,用于標識控制器類,并將其方法的返回值直接作為HTTP響應體返回。
@RequestMapping:將HTTP請求映射到處理方法上。
@GetMapping、@PostMapping等:用于簡化常見的HTTP請求方法的映射。
@RequestParam:用于獲取請求參數的值。
@PathVariable:用于獲取URL路徑變量的值。
@RequestBody:將請求體轉換為Java對象。
@ResponseBody:將方法返回的對象轉換為HTTP響應體。

4.數據訪問相關注解:

@Entity:標識一個類作為實體類,在數據庫中映射為表。
@Repository:標識一個類作為數據訪問對象(DAO)。
@Autowired:自動裝配依賴的Bean。
@Transactional:標識一個方法需要在事務中執行。
@Query:定義自定義的查詢方法。

5.測試相關注解:

@RunWith:指定測試運行器。
@SpringBootTest:用于加載Spring應用程序的上下文,并提供測試支持。
@MockBean:模擬Bean,用于替代真實的Bean進行測試。
這些注解涵蓋了Spring Boot應用程序開發的核心方面,通過合理使用這些注解,可以快速搭建和配置Spring Boot應用程序,并實現各種功能。

6.條件注解:

@ConditionalOnClass:當類路徑中存在指定的類時才生效。
@ConditionalOnBean:當容器中存在指定的Bean時才生效。
@ConditionalOnProperty:當配置文件中指定的屬性滿足條件時才生效。
@ConditionalOnMissingBean:當容器中不存在指定的Bean時才生效。

7.AOP相關注解:

@Aspect:將一個類標識為切面。
@Pointcut:定義切點,即需要被攔截的方法。
@Before:在方法執行之前進行攔截。
@After:在方法執行之后進行攔截。
@Around:在方法執行前后進行攔截。

8.定時任務相關注解:

@Scheduled:定義定時任務的執行規則。
異步編程相關注解:

@Async:將方法標記為異步執行。
緩存相關注解:

@EnableCaching:啟用緩存功能。
@Cacheable:標記方法的結果可被緩存。
這些注解可以根據具體的需求和場景選擇使用,用于實現更多的功能和擴展。需要注意的是,在使用注解時要理解其作用和正確使用方式,以避免錯誤和不必要的麻煩。

9.消息隊列相關注解:

@EnableJms:啟用JMS消息隊列功能。
@JmsListener:標識一個方法作為JMS消息監聽器。
WebFlux相關注解(用于響應式編程):

@RestController:組合注解,用于標識控制器類,并將其方法的返回值直接作為HTTP響應體返回。
@RequestMapping:將HTTP請求映射到處理方法上。
@GetMapping、@PostMapping等:用于簡化常見的HTTP請求方法的映射。
@PathVariable:用于獲取URL路徑變量的值。
@RequestBody:將請求體轉換為Java對象。
@ResponseBody:將方法返回的對象轉換為HTTP響應體。

10.Spring Security相關注解:

@EnableWebSecurity:啟用Web安全性配置。
@Secured:限制方法的訪問權限。
@PreAuthorize:在方法執行之前進行權限檢查。
@PostAuthorize:在方法執行之后進行權限檢查。

11.Swagger注解(用于API文檔生成):

@Api:用于標識Controller類,生成對應API文檔。
@ApiOperation:用于標識Controller類中的方法,生成對應API操作的文檔。
@ApiParam:用于標識Controller方法中的參數,生成對應API參數的文檔。

12.Spring緩存相關注解:

@EnableCaching:啟用Spring緩存功能。
@Cacheable:標識方法的結果應該被緩存。
@CachePut:標識方法的結果應該被放入緩存。
@CacheEvict:標識方法執行后應該移除緩存中的數據。

13.Spring定時任務相關注解:

@EnableScheduling:啟用Spring定時任務功能。
@Scheduled:標識方法為定時任務,并設置觸發時間規則。
Spring國際化相關注解:

@EnableMessageSource:啟用國際化消息資源配置。
@ConfigurationProperties:用于將屬性綁定到配置類中。
Spring WebSocket相關注解:

@EnableWebSocket:啟用Spring WebSocket功能。
@Controller:標識類為WebSocket控制器。
@MessageMapping:標記方法用于處理特定消息類型。

14.Spring Cloud相關注解(用于微服務開發):

@EnableDiscoveryClient:啟用服務注冊和發現功能。
@EnableFeignClients:啟用Feign客戶端功能。
@EnableCircuitBreaker:啟用熔斷器功能。
@EnableConfigServer:啟用配置中心功能。
這些注解涵蓋了不同領域的功能和特性,可以根據具體的需求選擇和使用。
Spring框架提供了豐富的注解,可以更高效地進行開發、配置和集成各種功能

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213593.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213593.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213593.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

函數式編程解析:定義、功能與Java實踐

目錄 一、函數式編程1.1 什么是函數式編程1.2 函數式編程特征1.2.1 純函數1.2.2 函數是一等公民 1.3 函數式編程在java中的實踐 參考資料 一、函數式編程 1.1 什么是函數式編程 函數式編程(Functional Programming)是一種編程范式,它將計算…

ES6中的迭代器和set、map集合

什么是迭代器? 一種機制,也是一種接口,為數據結構提供統一訪問接口,依次處理數據據結構成員 只要實現了迭代器接口,就可以使用for...of循環遍歷。 /*** 迭代器是一種機制 是一種接口 只要數據解構實現了接口 就可…

力扣labuladong一刷day36天

力扣labuladong一刷day36天 一、96. 不同的二叉搜索樹 題目鏈接:https://leetcode.cn/problems/unique-binary-search-trees/ 思路:這是一道典型的動態規劃題,從n3來看 子樹有幾種形態 (0, 2)、(1, 1)、(2, 0)有規律可循,即為左…

飛天使-linux操作的一些技巧與知識點4

文章目錄 ansible配置文件的優先級嘗試開始進行操作ansible常用模塊ansible 的playbook示例安裝phpplaybook中變量的引用 ansible yum install -y ansible 測試是否可用 ansible localhost -m ping /etc/ansible/ansible.cfg :主配置文件,配置 ansible…

大公司求我用Kotlin寫個通用爬蟲模板

bug虐我千百遍,我待他如初戀。每次深夜挑燈都是我與bug較量的時間。今天我要說的就是寫一個爬蟲模版,自動抓取百度圖片的教程,這次使用Kotlin編寫的爬蟲程序在Scrapy框架下完成的,如有不足歡迎指正。 首先,使用Kotlin編…

Mybatis-Plus源碼解析之@MapperScan(一)

group : com.baomidou version:3.5.2.2-SNAPSHOT baomidou官網可以從快速開始了解到,除了配置數據源,最重要的就是MapperScan 注解,在 Spring Boot 啟動類中添加 MapperScan 注解,掃描 Mapper 文件夾。 MapperScan 按照慣例&…

angular form 組件、雙向綁定;反應式表單

1.使用雙向綁定,以及angular的表單提交功能 app.moudle中引入 雙向綁定 [(ngModel)]"text" ??????? 效果 提交表單 2.反應式表單 在app.module.ts中引入在組件中引入,并放在一個變量里 在初始化時實列化這個module 定義規則 在html…

Linux:環境變量

目錄 1.基本變量 2.通過代碼獲取環境變量 2.1 main傳參 2.2 全局變量environ 2.3 系統調用getenv() 3.在腳本文件中添加環境變量 4.環境變量通常是具有全局屬性 1.基本變量 環境變量(environment variables)一般是指在操作系統中用來指定操作系統運行環境的一些參數…

商用中央空調市場分析:預計2028年將達到628億元

商用空調一直以來都沒有一個相對比較明確的概念,一直以來被認為是制冷空調市場的一個細分子行業。現在比較一致的觀點是,可以納入商用空調范疇的產品可以包括戶式中央空調產品、部分傳統中央空調產品以及部分家用空調。商用空調已普遍采用直流變頻領先技…

網絡計算機模擬實現

今天給大家說說前幾天完成的一個模擬的網絡計算機吧,雖然計算機的模擬實現的原理很簡單,但是如果要想寫乘網絡的,個人認為是不簡單的。基本上算是包涵了套接字編程的三分之一的知識點,此處的套接字編程指的是在理解TCP/IP五層協議…

泡沫玻璃市場分析:預計2028年將達到14億美元

泡沫玻璃最早是由美國匹茲堡康寧公司發明的,是由碎玻璃、發泡劑、改性添加劑和發泡促進劑等,經過細粉碎和均勻混合后,再經過高溫熔化,發泡、退火而制成的無機非金屬玻璃材料。它是由大量直徑為1~2毫米的均勻氣泡結構組成。其中吸聲…

Linux 常用命令----mktemp 命令

文章目錄 基本用法實例演示高級用法注意事項 mktemp 命令用于創建一個臨時文件或目錄,這在需要處理臨時數據或進行安全性測試時非常有用。使用 mktemp 可以保證文件名的唯一性,避免因文件名沖突而導致的問題。 基本用法 創建臨時文件: 命令 mktemp 默認…

Go語言基礎知識學習(一)

Go基本數據類型 bool bool型值可以為true或者false,例子: var b bool true數值型 類型表示范圍int8有符號8位整型-128 ~ 127int16有符號16位整型-32768 ~ 32767int32有符號32位整型-2147783648 ~ 2147483647int64有符號64位整型uint8無符號8位整型0 ~ 255uint16…

優思學院|如何建立公司運營指標體系?如何推行六西格瑪改進運營指標?

關鍵績效指標 (KPI) 是測量您團隊或組織朝重要商業目標進展表現如何的量化指標,組織會在多個層面使用 KPI,這視乎您想要追蹤何指標而定,您可以設定全組織的、特定團隊的、或甚至是個人 KPI。 良好的KPI能讓公司管理者掌握組織的營運是否進度…

使用React 18、Echarts和MUI實現溫度計

關鍵詞 React 18 Echarts和MUI 前言 在本文中,我們將結合使用React 18、Echarts和MUI(Material-UI)庫,展示如何實現一個交互性的溫度計。我們將使用Echarts繪制溫度計的外觀,并使用MUI創建一個漂亮的用戶界面。 本文…

點評項目——分布式鎖

2023.12.10 集群模式下的并發安全問題及解決 隨著現在分布式系統越來越普及,一個應用往往會部署在多臺機器上(多節點),通過加鎖可以解決在單機情況下的一人一單安全問題,但是在集群模式下就不行了。見下圖&#xff1a…

在 Android WebView 中實現和 JavaScript 的互操作

前言 在 APP 中內嵌一個 H5 來實現特定的業務功能已經是非常成熟且常用的方案了。 雖然 H5 已經能夠實現大多數的需求,但是對于某些需求還是得依靠原生代碼來實現然后與 JavaScript 進行交互,例如我目前所負責的項目就是一個 “智能硬件” 設備&#x…

【PyTorch】卷積神經網絡

文章目錄 1. 理論介紹1.1. 從全連接層到卷積層1.1.1. 背景1.1.2. 從全連接層推導出卷積層 1.2. 卷積層1.2.1. 圖像卷積1.2.2. 填充和步幅1.2.3. 多通道 1.3. 池化層(又稱匯聚層)1.3.1. 背景1.3.2. 池化運算1.3.3. 填充和步幅1.3.4. 多通道 1.4. 卷積神經…

實現React18加TS,解決通用后臺管理系統,實戰方案落地有效實踐經驗

隨著前端技術的不斷發展和更新,使用React 18結合TypeScript(TS)來構建通用后臺管理系統已成為一種常見的選擇。本文將介紹如何在項目中應用React 18和TS,并分享一些實戰方案的有效實踐經驗。 一、搭建React 18 TS項目 首先&…

12.2每日一題(1無窮型冪指函數:二倍角公式+三部曲+等價無窮小代換(只有整體的因子不為0才能先算出來))

注意:求極限不能想先算哪里就先算哪里,只有整體的因子不為0才能先算出來,部分不為0不可以先算