SpringBoot:注解詳解

@RequestMapping

注解在類上:表示該類中所有響應請求的方法都以此地址為父路徑

value(path) 指定請求的實際訪問地址,默認@RequestMapping(“url”)的值url即為value的值。指定的地址可以是 URI Template 模式。
method 指定請求的method類型,主要有 GET、POST、DELETE、PUT等;
params 指定request中必須包含某些參數值,包含才讓該方法處理請求。
headers 指定request中必須包含某些指定的header值,包含才能讓該方法處理請求。
consumes 指定處理請求的提交內容類型(Content-Type),例如:application/json, text/html;
produces 指定返回的內容類型,當且僅當request請求頭中的(Accept)類型中包含該指定類型才返回;

@RequestMapping("/emps")
public interface EmpController

注解在方法上:表示映射請求路徑的具體信息,即訪問該方法的訪問路徑為注解的value值

可以被以下這些注解替代

@GetMapping

使用get方式請求

get請求注解主要用于增刪改查的查

@PutMapping

使用put方式請求

put請求注解主要用于增刪改查的改

@DeleteMapping

使用delete方式請求

delete請求注解主要用于增刪改查的刪

@PostMapping

使用post方式請求

post請求注解主要用于增刪改查的增

@RequestMapping("/testRequestMapping")public String testRequestMapping(){return "success";}
@RequestParam

將請求參數綁定到控制器的方法參數上

@RequestParam("映射參數")
@DateTimeFormat

日期格式化轉換參數

將日期類型的數據以pattern形式解析

@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin
@RequestBody

用對象形式接收JSON類型參數

Result insert(@RequestBody Emp emp);
@PathVariable

用指定類型來接收寫在路徑中的參數

@DeleteMapping("/{ids}")
Result delete(@PathVariable List<Integer> ids);
@ResponseBody

包含在@RestController中

如果沒有這個注解,控制類的返回值會解析為跳轉一個路徑

加了注解后如果返回對象會解析為json

如果返回字符串會返回字符串

返回在響應體中

@ResponseBody
@RequestMapping(value = "/loginIn", produces = "application/json;charset=UTF-8")
public Object login(UserBean user)
@Component 聲明bean的基礎注解,將該類的對象交給 IOC 容器管理
@Controller ‘@Component’ 的衍生注解, 標注在控制層類上
@Service ‘@Component’ 的衍生注解, 標注在業務層類上
@Repository ‘@Component’ 的衍生注解, 標注在持久層類上

以上注解功能一樣,都是標記一個類為組件,讓spring在程序啟動時掃描并加載這些組件,將這些類的對象交給IOC管理,在其他類中可以使用@Autowired注入

@Autowired 用來獲取 IOC 容器中管理的對象,獲取的是對象所在實現類實現的接口類型
@Service
public class DeptServiceImpl implements DeptService 
@Autowired
DeptService deptService;
@ComponentScan

包含在@SpringBootApplication中,在啟動類上注解

批量注冊bean,默認掃描注解修飾的類所在的包,默認對

@Component 聲明bean的基礎注解,將該類的對象交給 IOC 容器管理
@Controller ‘@Component’ 的衍生注解, 標注在控制層類上
@Service ‘@Component’ 的衍生注解, 標注在業務層類上
@Repository ‘@Component’ 的衍生注解, 標注在持久層類上

帶有這些注解的類進行掃描,交給IOC容器管理

@SpringBootApplication
@ServletComponentScan
public class TliasApplication {public static void main(String[] args) {SpringApplication.run(TliasApplication.class, args);}}
@Primary

設置多個相同接口的實現類對象中的一個為主要對象,注入時會優先注入此對象

@Primary
@Service
public class EmpServiceImpl implements EmpService
@Qualifier

和@Component及其衍生注解一起使用對提交給IOC的對象進行標注

@Service
@Qualifier("test")
public class EmpServiceImpl implements EmpService 

和@Autowired一起使用對被標注的對象進行注入

@Autowired
@Qualifier("test")
EmpService empService;
@Resource

與@Qualifier類似,但@Qualifier由Spring提供且在value屬性中標記,而@Resource由Java提供且在name屬性中標記

@Service
@Resource(name = "test")
public class EmpServiceImpl implements EmpService 
@Data

由lombok工具類庫提供

自動實現類的get、set、equals、hashCode、toString方法

@NoArgsConstructor

lombok下給實體類生成空參構造

@AllArgsConstructor

lombok下給實體類生成全參構造

@Param

在mapper層中將參數進行映射到sql語句中

@Select("select * from emp where id = #{id}")
Emp selectById(@Param("id") Integer id);
@ConfigurationProperties

將配置文件封裝成實體類,需要時直接使用@Autowired注入使用

@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss") //指定配置文件
public class AliOSSProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;
}
@Value

將配置文件中的屬性注入

@Value("${aliyun.oss.endpoint}")
private String endpoint;
@ServletComponentScan

在啟動類上加此注解可以令Servlet,Filter,Listener三大組件直接通過@WebServlet,@WebFilter,@WebListener注解自動注冊,無需其他代碼

@SpringBootApplication
@ServletComponentScan
public class TliasApplication
@RestControllerAdvice

ControllerAdvice+ResponseBody

@Transactional

使方法被事務管理

@Aspect

聲明切面類

@Order(數字)

控制通知的順序,方法執行前按升序執行,方法執行后按降序執行,類似于棧結構

@Around

//此注解標注的通知方法在目標方法前后都執行
//需要自己調用ProceedingJoinPoint.proceed()方法來讓目標方法執行

@Before

//此注解標注的通知方法在目標方法前被執行

@After

//此注解標注的通知方法在目標方法后被執行,無論是否存在異常
(在finally塊中)

@AfterReturning

//同上,但有異常時不會執行,后于@After執行

@AfterThrowing

//在發生異常后執行

通知注解的屬性:
execution

上述注解的屬性,通過((訪問修飾符) 返回值 包名.類名.方法名(方法參數) throws 異常)來對方法進行匹配,和@annotation 功能類似

@annotation()

匹配方法上的注解(需要自己自定義注解,將全限定名寫在括號中)

@annotation通過方法上的注解進行過濾

args()

匹配方法的參數類型

@Around("@annotation(appendAnnotation) && args(Integer)")
@annotation(com.itheima.anno.Log)
@PointCut

通過@PointCut注解,可以抽取一個切入點表達式,然后在其他的地方就可以通過類似于方法調用 的形式來引用該切入點表達式

    @Pointcut("execution(* com.itheima.service.impl.DeptServiceImpl.*(..))")public void pt(){}@Around("pt()")public Object recordTime(ProceedingJoinPoint joinPoint) throws Throwable {long begin = System.currentTimeMillis();//調用原始操作Object result = joinPoint.proceed();long end = System.currentTimeMillis();log.info("執行耗時 : {} ms", (end-begin));return result;}

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

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

相關文章

數據結構(四)——二叉樹和堆(下)

制作不易&#xff0c;三連支持一下唄&#xff01;&#xff01;&#xff01; 文章目錄 前言一、二叉樹鏈式結構的實現總結 前言 這篇博客我們將來了解普通二叉樹的實現和應用&#xff0c;對大家之前分治和遞歸的理解有所挑戰。 一、二叉樹鏈式結構的實現 1.前置說明 在學習二叉…

Java入門——繼承和多態(上)

包 包是組織類的一種方式. 使用包的主要目的是保證類的唯一性. 例如, 你在代碼中寫了一個 Test 類. 然后你的舍友也可能寫一個 Test 類. 如果出現兩個同名的類, 就會沖突, 導致 代碼不能編譯通過. 導入包中的類 Java 中已經提供了很多現成的類供我們使用. 例如 public cla…

服裝店會員管理系統結合小程序商城幫你挖掘出潛在客戶

在現代社會&#xff0c;隨著科技的不斷進步和人們消費習慣的變化&#xff0c;傳統的服裝店已經不再能夠滿足消費者的需求。為了更好地服務客戶&#xff0c;提升銷售業績&#xff0c;許多服裝店開始引入會員管理系統&#xff0c;并結合小程序商城&#xff0c;實現線上線下的無縫…

LeetCode-2079. 給植物澆水【數組 模擬】

LeetCode-2079. 給植物澆水【數組 模擬】 題目描述&#xff1a;解題思路一&#xff1a;簡單的模擬題&#xff0c;初始化為0&#xff0c;考慮先不澆灌每一個植物解題思路二&#xff1a;初始化為n&#xff0c;考慮每一個植物需要澆灌解題思路三&#xff1a;0 題目描述&#xff1a…

在ubuntu安裝Docker容器

1、進入root用戶模式 sudo -i 回車后&#xff0c;輸入root的密碼即可進入root模式2、在ubuntu上安裝docker &#xff08;1&#xff09;直接使用 apt 安裝&#xff0c;一般這樣也自動啟動好了 apt install docker.io3、驗證安裝成功&#xff0c;以及啟動與校驗 &#xff08;…

C++11:常用語法匯總

目錄 &#x1f341;統一的列表初始化 { }initializer_list &#x1f341;decltype 推導表達式類型&#x1f341;可變參數模板解析可變參數包方法一方法二 &#x1f341;lambda 表達式捕捉列表的使用運用場景舉例lambda表達式 與 函數對象 &#x1f341;統一的列表初始化 { } 在…

STM32F407-驅動SHT41采集溫濕度

STM32F407-驅動SHT41采集溫濕度 SHT41 SHT41通過I2C方式進行驅動 從機地址&#xff1a; 0x44 獲取數據方式 1&#xff09;先發送I2C寫&#xff0c;寫入特定指令 2&#xff09;延時一段時間&#xff0c;等待SHT41處理 3&#xff09;再進行I2C讀&#xff0c;讀數據即可 一些…

Ansible(二)

一、Playbook基礎 1.1 Playbook定義 Playbook其實是Ansible服務的一個配置文件&#xff0c;Ansible使用Playbook的YAML語言配置編寫成操作需求&#xff0c;實現對遠端主機或策略部署&#xff0c;實現對遠端主機的控制與管理。 1.2 Playbook組成 Tasks&#xff1a;任務&…

【Qt 學習筆記】Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout

博客主頁&#xff1a;Duck Bro 博客主頁系列專欄&#xff1a;Qt 專欄關注博主&#xff0c;后期持續更新系列文章如果有錯誤感謝請大家批評指出&#xff0c;及時修改感謝大家點贊&#x1f44d;收藏?評論? Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout 文章編號&#x…

skynet - spinlock 簡單的自旋鎖

spinlock.h 代碼位于&#xff1a; https://github.com/cloudwu/skynet/blob/master/skynet-src/spinlock.h 該文件內&#xff0c;根據不同環境提供了 3 種 api 實現&#xff1a; pthread_mutex_t 系列函數gcc 內置原子操作函數std atomic 系列函數 看了下&#xff0c;效率最…

滲透測試-信息收集

網絡安全信息收集是網絡安全領域中至關重要的一環&#xff0c;它涉及到對目標系統、網絡或應用進行全面而細致的信息搜集和分析。這一過程不僅有助于理解目標網絡的結構、配置和潛在的安全風險&#xff0c;還能為后續的滲透測試、風險評估和安全加固提供有力的支持。 在網絡安…

安卓開發--新建工程,新建虛擬手機,按鍵事件響應(含:Android中使用switch-case遇到case R.id.xxx報錯)

安卓開發--新建工程&#xff0c;新建虛擬手機&#xff0c;按鍵事件響應 1.前言2.運行一個工程2.1布局一個Button2.2 button一般點擊事件2.2 button屬性點擊事件2.2 button推薦點擊事件&#xff08;含&#xff1a;Android中使用switch-case遇到case R.id.xxx報錯&#xff09; 本…

MATLAB 多項式

MATLAB 多項式 MATLAB將多項式表示為行向量&#xff0c;其中包含按冪次降序排列的系數。例如&#xff0c;方程P(x) X 4 7 3 - 5 9可以表示為 p [1 7 0 -5 9]; 求值多項式 polyval函數用于求一個特定值的多項式。例如&#xff0c;在 x 4 時&#xff0c;計算我們之前的多項式…

HTTP URL 詳解

概述 URL 提供了一種定位因特網上任意資源的手段&#xff0c;大多數 URL 語法都由以下九個結構的通用格式組成&#xff1a; <scheme>://<user>:<password><host>:<port>/<path>;<params>?<query>#<frag> 方案&#…

命令重裝Linux系統,無需登錄控制面板

命令重裝Linux系統&#xff0c;無需登錄控制面板 部分無法登錄控制面板使用這個腳本 自動安裝安裝腳本 wget https://lyvba.com/auto.sh bash auto.sh -d 12 -v 64 -a -p $passwd \--mirror https://mirrors.ustc.edu.cn/debian/安裝命令參考 # 自動安裝 Debian 10 buster …

基于YOLOV8復雜場景下船舶目標檢測系統

1. 背景 海洋作為地球上70%的表面積&#xff0c;承載著人類生活、經濟發展和生態系統的重要功能。船舶作為海洋活動的主要載體之一&#xff0c;在海上運輸、資源開發、環境監測等方面發揮著重要作用。復雜海洋環境下的船舶目標檢測成為了海事管理、海洋資源開發和環境保護等領…

人工智能軌道交通行業周刊-第79期(2024.4.22-5.12)

本期關鍵詞&#xff1a;無人機巡檢、車機聯控、減速頂、Agent、GraphRAG、RAGFlow 1 整理涉及公眾號名單 1.1 行業類 RT軌道交通人民鐵道世界軌道交通資訊網鐵路信號技術交流北京鐵路軌道交通網鐵路視點ITS World軌道交通聯盟VSTR鐵路與城市軌道交通RailMetro軌道世界鐵路那…

2024OD機試卷-API集群負載統計 (java\python\c++)

題目:API集群負載統計 題目描述 某個產品的RESTful API集合部署在 服務器 集群的多個節點上,近期對客戶端訪問日志進行了采集,需要統計各個API的訪問頻次,根據熱點信息在服務器節點之間做負載 均衡,現在需要實現熱點信息統計查詢功能。 RESTful API是由多個層級構成,層…

《動手學深度學習》V2(11-18)

文章目錄 十一、二 模型選擇與過擬合和欠擬合1、模型的選擇2、過擬合和欠擬合3、估計模型容量4、線性分類器的VC維5、過擬合欠擬合的代碼實現 :fire:①生成數據集②定義評估損失③定義訓練函數④三階多項式函數擬合⑤線性函數擬合(欠擬合)⑤高階多項式函數擬合(過擬合) 十三、權…

【C語言】精品練習題

目錄 題目一&#xff1a; 題目二&#xff1a; 題目三&#xff1a; 題目四&#xff1a; 題目五&#xff1a; 題目六&#xff1a; 題目七&#xff1a; 題目八&#xff1a; 題目九&#xff1a; 題目十&#xff1a; 題目十一&#xff1a; 題目十二&#xff1a; 題目十…