SpringBoot項目中常見注解

@RequiredArgsConstructor 注解
  • 類上添加該注解,Lombok 會自動生成一個構造函數,用于注入 final@NonNull 修飾的字段
@ConfigurationProperties注解
  • 用于將配置文件中的屬性注入到某個類的字段上
sky:jwt:admin-secret-key: itcastadmin-ttl: 7200000admin-token-name: token
@ConfigurationProperties(prefix = "sky.jwt")
public class JwtProperties {/*** 管理端員工生成jwt令牌相關配置*/private String adminSecretKey;private long adminTtl;private String adminTokenName;
}

注意:配置文件中使用橫線而不是下劃線 , 如果使用下劃線(如 admin_secret_key), Spring Boot無法直接將其映射為 adminSecretKey,需要自定義映射規則.

@ConditionalOnMissingBean注解

用來防止重復注冊: 當容器中已存在某個類型的Bean時,使用此注解可以避免再次注冊相同類型的 Bean,防止Bean重復定義導致的異常。

示例:

@Configuration
public class MyServiceConfig {@Bean@ConditionalOnMissingBean(MyService.class)public MyService defaultMyService() {return new DefaultMyServiceImpl();}
}

defaultMyService 方法僅在容器中不存在 MyService 類型的 Bean 時才會被調用,確保容器中只有一個MyService實例。

@RequestHeader注解

用于從請求頭中獲取指定的頭部字段。直接綁定請求頭中的某個參數到方法的參數上。

例如:

@RequestMapping("/header")
public String getHeader(@RequestHeader("User-Agent") String userAgent) {return "User-Agent: " + userAgent;
}

當發送請求時,User-Agent 頭部的信息會映射到 userAgent 參數里。

@value注解

主要作用: 從配置文件中注入值

基本使用
  • 配置文件:
server:port: 8080
  • 注入:
@Value("${server.port}")
private String serverPort;
其他用法

如果 config.name 配置項 不存在,則使用 默認值:

@Value("${config.name:默認值}")
private String configName;

可以用逗號分隔方式讀取數組:

config.names=張三,李四,王五
@Value("#{'${config.names}'.split(',')}")
private List<String> names;

🔹 這樣 names 變量的值就是 ["張三", "李四", "王五"]

讀取操作系統的環境變量 或 Java 系統屬性:

@Value("${JAVA_HOME}")
private String javaHome;
@Pathvariable注解:
  • @pathvariable :用于指定路徑參數,不帶問號的,比如category/1這種形式.

  • 下面的url中,id直接以鍵值對形式跟在?后,明確地說明了這就是id的值,不用加@pathvariable注解.

http://localhost:8080/category?id=12345

如果路徑參數和方法參數名一致,可以省略括號中的內容:

@PathVariable("id") Long id
@RequestParam注解:

假設請求: http://localhost:8080/greet?name=John,則參數 name 會被賦值為 "John":

@GetMapping("/greet")
public String greet(@RequestParam String name) {return "Hello, " + name;
}
@Service注解

該注解應該標注在 實現類上,而不是接口上。

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

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

相關文章

一鍵修復ipynb,Jupyter Notebook損壞文件

背景最近在寫一個數據分析項目時&#xff0c;不幸遇到了 斷電導致電腦重啟 的突發情況。當我再次打開 Jupyter Notebook 文件&#xff08;.ipynb&#xff09;時&#xff0c;發現文件已經損壞&#xff0c;Jupyter 無法正常讀取它&#xff0c;甚至有時直接報錯&#xff1a;Unread…

React入門學習——指北指南(第三節)

React 組件 在前面的內容中,我們了解了 React 的基礎知識和入門案例。本節將深入探討 React 中最核心的概念之一 —— 組件。組件是構建 React 應用的基礎,理解組件的工作原理和使用方法,對于掌握 React 開發至關重要。 什么是組件? 在 React 中,組件是具有獨立功能和 …

容器化環境下的服務器性能瓶頸與優化策略

更多云服務器知識&#xff0c;盡在hostol.com在容器化環境中&#xff0c;性能優化并不是一個簡單的“加硬件”或“增加資源”就能解決的問題。隨著技術的進步&#xff0c;越來越多的公司選擇使用容器技術&#xff08;如Docker、Kubernetes&#xff09;來提高應用的靈活性、可移…

GaussDB 數據庫架構師修煉(八) 等待事件(2)-ASP報告分析

1 ASP報告簡介ASP-Active Sesion Profile &#xff08;活躍會話檔案信息&#xff09;&#xff0c;ASP每秒獲取活躍會話事件&#xff0c;放到內存中&#xff0c;內存中的數據達閾值&#xff0c;會落盤gs_asp表中。ASP Report根據輸入的時間段與slot個數&#xff0c;從內存和磁盤…

CentOS7 安裝 Redis

在 CentOS 7 上配置 Redis 服務器需要完成安裝、配置和服務管理。以下是詳細步驟&#xff1a;安裝 Redis安裝依賴&#xff1a;yum install -y gcc tcl下載并解壓 Redis&#xff1a;cd /usr/local/wget https://download.redis.io/releases/redis-6.2.6.tar.gztar -zxvf redis-6…

《C++ list 完全指南:從基礎到高效使用》

《C list 完全指南&#xff1a;從基礎到高效使用》 文章目錄《C list 完全指南&#xff1a;從基礎到高效使用》一、forward_list和list比較二、list的接口介紹1.list的構造2.list iterator的使用3.list的容量操作4.list的訪問操作5.list的其他操作接口三、list的迭代器失效四、…

CIU32L051 DMA+Lwrb環形隊列實現串口無阻塞性數據的收發 + 數據百分百不丟失的實現

1.Lwrb的介紹&#xff08;博主功能的實現是基于RT-thread系統實現&#xff09; Lwrb是由Tilen Majerle編寫的一個線程安全的環形隊列&#xff0c;通常與DMA配合實現數據的無阻塞性收發&#xff0c;同時&#xff0c;配合DMA的傳輸過半中斷&#xff0c;傳輸完成中斷&#xff0c;以…

【C++】C++ 的入門知識2

本篇文章主要講解 C 的入門語法知識引用、inline 關鍵字與 nullptr 關鍵字。 目錄 1 引用 1&#xff09; 引用的概念與定義 &#xff08;1&#xff09; 引用的概念 &#xff08;2&#xff09; 引用的定義 2&#xff09; 引用的特性 3&#xff09; 引用的使用場…

基于Kafka實現動態監聽topic功能

生命無罪&#xff0c;健康萬歲&#xff0c;我是laity。 我曾七次鄙視自己的靈魂&#xff1a; 第一次&#xff0c;當它本可進取時&#xff0c;卻故作謙卑&#xff1b; 第二次&#xff0c;當它在空虛時&#xff0c;用愛欲來填充&#xff1b; 第三次&#xff0c;在困難和容易之間&…

機械學習初識--什么是機械學習--機械學習有什么重要算法

一、什么是機械學習機器學習&#xff08;Machine Learning&#xff09;是人工智能&#xff08;AI&#xff09;的一個重要分支&#xff0c;它使計算機能夠通過數據自動學習規律、改進性能&#xff0c;并在沒有明確編程的情況下完成特定任務。其核心思想是讓機器從數據中 “學習”…

普通大學生大三這一年的想法

目錄 大三期間的經歷與反思 公益活動&#xff1a;社會責任感的體現 比賽&#xff1a;個人成長的助推器 培訓與思想提升 大學教育的本質與人才培養 構建自我的道與未來規劃 大學教育的未來與個人定位 結語 大三期間的經歷與反思 大三&#xff0c;大學生活的分水嶺&#…

Python——入門

目錄 變量 變量類型 動態類型 注釋 輸出輸入 運算符 算術運算符 關系運算符 邏輯運算符 賦值運算符 條件語句 循環語句 函數 函數作用域 函數嵌套調用 函數默認參數 關鍵字參數 列表 切片 列表遍歷 新增元素 查找元素 刪除元素 列表拼接 元組…

華為榮耀部分機型從鴻蒙降回EMUI的一種方法

一、準備說明 1、這里介紹使用華為手機助手、海外代理軟件結合固件將部分華為榮耀手機鴻蒙系統降級回EMUI系 統的一種方式&#xff1b; 2、需要降級的手機需要再出廠時內置系統為EMUI&#xff0c;出廠時為鴻蒙系統的無法進行降級操作&#xff1b; 3、降級有風險&#xff0…

maven <dependencyManagement>標簽的作用

作用 dependencyManagement標簽的作用&#xff1a;在父工程pom文件中聲明依賴&#xff0c;但不引入&#xff1b;在子工程中用到聲明的依賴時&#xff0c;可以不加依賴的版本號&#xff0c;這樣可以統一管理工程中用到的依賴版本。 示例 先創建一個項目 dependencyManagement-de…

JSON格式化與結構對比

說明 功能格式化json字符串為最簡格式&#xff0c;并標識值類型&#xff1b;比對json字符串結構。第三方依賴fastjson: 用于解析json、判斷json值類型&#xff1b;springframework自帶的字符串判斷&#xff0c;可以不依賴該方法&#xff0c;改為自行實現&#xff1b;slf4j: 用于…

編程與數學 03-002 計算機網絡 03_物理層基礎

編程與數學 03-002 計算機網絡 03_物理層基礎一、物理層的作用與任務&#xff08;一&#xff09;傳輸媒體的類型&#xff08;二&#xff09;信號的傳輸方式二、數據編碼技術&#xff08;一&#xff09;數字數據的數字信號編碼&#xff08;二&#xff09;模擬數據的數字信號編碼…

c語言--文件操作

思維導圖:1. 為什么使用文件&#xff1f; 如果沒有文件&#xff0c;我們寫的程序的數據是存儲在電腦的內存中&#xff0c;如果程序退出&#xff0c;內存回收&#xff0c;數據就丟失了&#xff0c;等再次運?程序&#xff0c;是看不到上次程序的數據的&#xff0c;如果要將數據進…

SQL中的占位符、@Param注解和方法參數

代碼中出現的多個 username 和 password 代表不同層面的變量&#xff0c;具體含義如下&#xff08;按執行順序&#xff09;&#xff1a;### 1. Param("username") String username - 位置 &#xff1a;方法參數前的注解 - 作用 &#xff1a;- Param("username&q…

【SpringAI實戰】FunctionCalling實現企業級自定義智能客服

一、前言 二、實現效果 三、代碼實現 3.1 后端實現 3.2 前端實現 一、前言 Spring AI詳解&#xff1a;【Spring AI詳解】開啟Java生態的智能應用開發新時代(附不同功能的Spring AI實戰項目)-CSDN博客 二、實現效果 一個24小時在線的AI智能客服&#xff0c;可以給用戶提供培…

kotlin基礎【2】

變量類型var 和 val 的核心區別&#xff1a;關鍵字含義能否重新賦值類似概念&#xff08;Java&#xff09;varvariable&#xff08;可變變量&#xff09;可以普通變量&#xff08;無 final&#xff09;valvalue&#xff08;不可變變量&#xff09;不可以被 final 修飾的變量var…