SpringBoot 常用注解通俗解釋

SpringBoot 常用注解通俗解釋

一、啟動類相關

1. @SpringBootApplication ?
? ?? 作用:這是SpringBoot項目的"總開關",放在主類上

? ?? 通俗理解:相當于對電腦說:"開機!我要用SpringBoot了!"

? ?? 包含三個小功能:

? ? ?? `@Configuration`:告訴Spring這里有些配置

? ? ?? `@EnableAutoConfiguration`:讓SpringBoot自動配置

? ? ?? `@ComponentScan`:讓Spring去掃描當前包下的組件


二、控制器相關(Controller)

2. @RestController ?
? ?? 作用:標記這是一個控制器,返回JSON數據

? ?? 通俗理解:掛個牌子"這里是接待處",來的請求都轉成JSON格式回復

? ?? 對比:`@Controller`是返回網頁,`@RestController`是返回數據


3. @RequestMapping ?
? ?? 作用:定義請求路徑

? ?? 通俗理解:給辦公室貼門牌號,比如`/user`就是"用戶辦公室"

? ?? 示例:`@RequestMapping("/api/users")` → 訪問路徑是`http://地址/api/users`


4. @GetMapping / @PostMapping ?
? ?? 作用:指定GET/POST等請求方式

? ?? 通俗理解:

? ? ?? `@GetMapping`:只接受"敲門"(瀏覽器直接訪問)

? ? ?? `@PostMapping`:只接受"遞紙條"(表單提交)


5. @PathVariable ?
? ?? 作用:獲取URL中的變量

? ?? 通俗理解:從網址中摳出數字/文字

? ?? 示例: ?

? ? ?```java
? ? ?@GetMapping("/users/{id}") ?// 訪問/users/123
? ? ?public String getUser(@PathVariable Long id) {
? ? ? ? ?return "找到用戶"+id; ?// id=123
? ? ?}
? ? ?```

6. @RequestParam ?
? ?? 作用:獲取請求參數

? ?? 通俗理解:從網址問號后面拿參數

? ?? 示例: ?

? ? ?```java
? ? ?// 訪問 /search?keyword=手機
? ? ?@GetMapping("/search")
? ? ?public String search(@RequestParam String keyword) {
? ? ? ? ?return "正在搜索:" + keyword; ?// keyword="手機"
? ? ?}
? ? ?```

7. @RequestBody ?
? ?? 作用:獲取請求體中的JSON數據

? ?? 通俗理解:收快遞(接收前端發來的JSON包裹)

? ?? 示例: ?

? ? ?```java
? ? ?@PostMapping("/users")
? ? ?public User addUser(@RequestBody User user) {
? ? ? ? ?// 前端發來JSON自動變成User對象
? ? ? ? ?return userService.save(user);
? ? ?}
? ? ?```

三、服務層相關(Service)

8. @Service ?
? ?? 作用:標記這是一個服務類

? ?? 通俗理解:掛個牌子"這里是業務處理中心"

? ?? 特點:通常包含業務邏輯,比如計算、數據處理等


9. @Transactional ?
? ?? 作用:聲明事務(要么全部成功,要么全部失敗)

? ?? 通俗理解:打包操作,要么全部完成,要么全部取消

? ?? 示例: ?

? ? ?```java
? ? ?@Transactional
? ? ?public void transferMoney(Long from, Long to, BigDecimal amount) {
? ? ? ? ?// 扣錢和加錢要么都成功,要么都失敗
? ? ? ? ?accountService.debit(from, amount);
? ? ? ? ?accountService.credit(to, amount);
? ? ?}
? ? ?```

四、數據訪問層(Repository)

10. @Repository ?
? ? ? 作用:標記這是數據訪問組件

? ? ? 通俗理解:掛個牌子"這里是數據庫操作員"

? ? ? 注意:用JPA時通常繼承`JpaRepository`,可以不加這個注解


五、依賴注入

11. @Autowired ?
? ? ? 作用:自動裝配依賴對象

? ? ? 通俗理解:需要什么工具,喊一聲"給我拿個XXX",Spring就會遞給你

? ? ? 示例: ?

? ? ? ```java
? ? ? @Service
? ? ? public class UserService {
? ? ? ? ? @Autowired ?// Spring自動把UserRepository實例放進來
? ? ? ? ? private UserRepository userRepo;
? ? ? }
? ? ? ```

六、實體類相關(Entity)

12. @Entity ?
? ? ? 作用:標記這是數據庫表對應的類

? ? ? 通俗理解:給Java類貼標簽"我是數據庫里的一張表"


13. @Id ?
? ? ? 作用:標記這是主鍵字段

? ? ? 通俗理解:給字段貼標簽"這是我的身份證號"


14. @Column ?
? ? ? 作用:定義字段屬性

? ? ? 通俗理解:給字段加備注說明

? ? ? 示例: ?

? ? ? ```java
? ? ? @Column(name = "user_name", nullable = false, length = 50)
? ? ? private String username;
? ? ? ```

七、配置相關

15. @Configuration ?
? ? ? 作用:聲明這是一個配置類

? ? ? 通俗理解:掛個牌子"這里是工具配置中心"


16. @Bean ?
? ? ? 作用:聲明一個方法返回的對象交給Spring管理

? ? ? 通俗理解:在配置中心里放個新工具,大家都可以用

? ? ? 示例: ?

? ? ? ```java
? ? ? @Configuration
? ? ? public class AppConfig {
? ? ? ? ? @Bean
? ? ? ? ? public PasswordEncoder passwordEncoder() {
? ? ? ? ? ? ? return new BCryptPasswordEncoder();
? ? ? ? ? }
? ? ? }
? ? ? ```

八、其他常用

17. @Component ?
? ? ? 作用:通用的組件注解

? ? ? 通俗理解:萬用標簽,可以貼在任何需要Spring管理的類上


18. @Value ?
? ? ? 作用:注入配置文件中的值

? ? ? 通俗理解:從application.properties里讀取設置

? ? ? 示例: ?

? ? ? ```java
? ? ? @Value("${app.page.size}") ?// 對應配置文件中的app.page.size=10
? ? ? private int pageSize;
? ? ? ```

快速記憶口訣

? 開機:`@SpringBootApplication`

? 接待:`@RestController` + `@RequestMapping`

? 收參數:`@PathVariable`、`@RequestParam`、`@RequestBody`

? 業務:`@Service` + `@Transactional`

? 數據庫:`@Entity` + `@Id` + `@Column`

? 要工具:`@Autowired`

? 配東西:`@Configuration` + `@Bean`

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

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

相關文章

棧應用:括號匹配

1&#xff1a;普通字符串括號匹配 #include <iostream> #include <stack> #include <string> using namespace std; bool mat(char,char); int if_match(string); int main(){string a;cin>>a;cout<<if_match(a)<<endl;return 0; } bool m…

某東h5st_5.1(補環境)

JS逆向實戰——某東h5st_5.1&#xff08;補環境&#xff09; 聲明網站流程分析結果展示總結 聲明 本文章中所有內容僅供學習交流&#xff0c;抓包內容、敏感網址、數據接口均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無…

新增Webhook通知功能,文檔目錄樹展示性能優化,zyplayer-doc 2.5.1 發布啦!

zyplayer-doc是一款適合企業和個人使用的WIKI知識庫管理工具&#xff0c;支持在線編輯富文本、Markdown、表格、Office文檔、API接口、思維導圖、Drawio以及任意的文本文件&#xff0c;支持基于知識庫的AI問答&#xff0c;專為私有化部署而設計&#xff0c;最大程度上保證企業或…

macOS安全隱私最佳實踐分析

1. 引言 隨著數字世界的不斷擴展&#xff0c;個人和組織面臨的安全與隱私威脅也日益增加。作為專業的安全合規與隱私保護研究團隊&#xff0c;Kaamel 對 macOS 系統的安全隱私現狀進行了全面分析&#xff0c;并提出了一系列最佳實踐建議&#xff0c;旨在幫助用戶更好地保護自己…

架構設計之異地多活與單元化(Set化)

公司的業務到達一定規模后,往往會考慮做多數據中心。一方面是面臨業務增長帶來的挑戰,單個數據中心變得難以支撐;另一方面出于對業務容災的考量,也可能在多個城市建立數據中心達到容災目的。單元化(Set化)是作為異地多活的一個解決方案。 一、什么是異地多活 異地多活是…

Kettle學習

一、Kettle 簡介 Kettle(現稱為 Pentaho Data Integration)是一款開源ETL工具,支持從多種數據源抽取、轉換和加載數據,廣泛應用于數據倉庫構建、數據遷移和清洗。其核心優勢包括: 可視化操作:通過拖拽組件設計數據處理流程(轉換和作業)。多數據源支持:數據庫(MySQL/…

蘋果計劃2026年底前實現美版iPhone“印度造”,以減輕關稅及地緣政治風險

基于 6 個來源 據多家媒體報道&#xff0c;蘋果公司計劃在2026年底前&#xff0c;實現在印度組裝銷往美國的大部分或全部iPhone手機&#xff0c;以減輕關稅和地緣政治緊張局勢帶來的風險。這一目標意味著蘋果需將印度的iPhone產量增加一倍以上&#xff0c;凸顯其供應鏈多元化戰…

【C++】googletest_TEST/TEST_F

在 Google Test 框架中&#xff0c;TEST 和 TEST_F 是定義測試用例的兩個核心宏&#xff0c;它們的區別主要體現在 測試上下文的管理方式 上。以下是二者的詳細對比&#xff1a; 1. TEST 宏 定義方式 TEST(TestSuiteName, TestName) {// 測試邏輯 }特點 獨立上下文&#xff…

14-DevOps-快速部署Kubernetes

在學習階段&#xff0c;為了能快速部署Kubernetes&#xff0c;這里用一個快速安裝工具&#xff1a;Kubeode&#xff0c;來完成Kubernetes的部署。 接下來部署一個單機&#xff0c;一主一從的Kubernetes。一主一從都部署在同一臺服務器上。 在虛擬機新開一個服務器&#xff0c…

Java 異常處理全解析:從基礎到自定義異常的實戰指南

Java 異常處理全解析&#xff1a;從基礎到自定義異常的實戰指南 一、Java 異常體系&#xff1a;Error 與 Exception 的本質區別 1. 異常體系核心架構 Java把異常當作對象來處理&#xff0c;并定義一個基類java.lang.Throwable作為所有異常的超類。 在Java API中已經定義了許…

redis 數據類型新手練習系列——string類型

redis 數據類型 Redis 主要支持以下幾種數據類型&#xff1a; &#xff08;1&#xff09;string&#xff08;字符串&#xff09;: 基本的數據存儲單元&#xff0c;可以存儲字符串、整數或者浮點數。 &#xff08;2&#xff09;hash&#xff08;哈希&#xff09;:一個鍵值對集…

Android12源碼編譯及刷機

由于google的AOSP源碼拉取經常失敗&#xff0c;編譯還經常出現各種問題。這里根據香橙派Orange Pi 5 Plus&#xff08;Android12電視鏡像&#xff09;源碼進行編譯演示。 RK芯片的開發板可玩性很高&#xff0c;這里以電視版本android系統為例子&#xff0c;學習的同時還可以當…

從零實現 registry.k8s.io/pause:3.8 鏡像的導出與導入

以下是為 registry.k8s.io/pause:3.8 鏡像的導出與導入操作定制的完整教程&#xff0c;適用于 Kubernetes 集群中使用 containerd 作為容器運行時的場景。本教程包含詳細步驟、常見問題解析及注意事項。 從零實現 registry.k8s.io/pause:3.8 鏡像的導出與導入 背景說明 Kuber…

Redis和MQ的區別

redis是一個高性能的key-value數據庫&#xff0c;支持消息推送功能&#xff0c;可以當做一個輕量級的隊列服務器使用。 redis只是提供一個高性能的、原子操作內存鍵值隊&#xff0c;具有高速訪問能力&#xff0c;雖然可以做消息隊列的存儲&#xff0c;但不具備消息隊列的任何功…

Centos7系統防火墻使用教程

CentOS 7是一種常見的Linux操作系統&#xff0c;防火墻作為網絡安全的第一道防線&#xff0c;對于服務器的安全至關重要。本文將介紹CentOS 7系統中防火墻的使用教程&#xff0c;包括如何開啟、關閉、配置以及防火墻規則的添加和刪除。 一、查看防火墻狀態 在開始操作之前&am…

Uniapp:navigator(頁面跳轉)

目錄 一、基本概述二、屬性說明三、具體使用一、基本概述 頁面跳轉。該組件類似HTML中的<a>組件,但只能跳轉本地頁面。目標頁面必須在pages.json中注冊。 二、屬性說明 屬性名類型默認值說明平臺差異說明urlString應用內的跳轉鏈接,值為相對路徑或絕對路徑,如:“……

大疆機場及無人機上云(航線規劃、指令飛行...)

系統操作預覽&#xff1a; 包含一鍵起飛、指令飛行、云臺控制、變焦、航線規劃、空域規劃、成果數據展示、實時飛行模擬、任務派發等 大疆無人機飛控平臺&#xff08;航線規劃、機場3、私有化部署&#xff09;_嗶哩嗶哩_bilibili 2025-04-02 更新 start、 已支持大疆機場3。…

【運維】云端掌控:用Python和Boto3實現AWS資源自動化管理

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 在云計算時代,AWS(Amazon Web Services)作為領先的云服務平臺,其資源管理的高效性對企業至關重要。本文深入探討如何利用Python的boto3…

Java ThreadLocal與內存泄漏

當我們利用 ThreadLocal 來管理數據時&#xff0c;我們不可避免地會面臨內存泄漏的風險。 原因在于 ThreadLocal 的工作方式。當我們在當前線程的 ThreadLocalMap 中存儲一個值時&#xff0c;一旦這個值不再需要&#xff0c;釋放它就變得至關重要。如果不這樣做&#xff0c;那么…