springboot+vue+mysql項目使用的常用注解

實體類常用注解

@Data

@Data 是一個 Lombok 提供的注解,使用 @Data 注解可以簡化代碼,使代碼更加簡潔易讀。

  • 作用:自動為類生成常用的方法,包括 getter、setter、equals、hashCode 和 toString 等
  • 需要加Lombok的依賴
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.4</version><scope>provided</scope>
</dependency>

@ApiModel

@ApiModel注解是用在接口相關的實體類上的注解,它主要是用來,常常和@ApiModelProperty注解配合使用

  • 作用:對使用該注解的接口相關的實體類添加額外的描述信息,作用在類上
  • value:對所需要特別說明的接口相關實體類進行描述,默認值就是實體類的名稱
  • description:對所需要特別說明的接口相關實體類進行較長的描述
  • 參考博客
    • @ApiModel注解與@ApiModelProperty注解
@ApiModel(value="User對象", description="用戶表")
public class User implements Serializable {

@ApiModelProperty

  • 作用:添加和操作屬性模塊的數據
    -value:為此屬性的簡要描述(數據庫內給當前字段的備注是什么在value內就填什么)
  • 參考博客
    • @ApiModelProperty注解的用法(官方平臺推薦文章)
@ApiModelProperty(value = "主鍵id")

在這里插入圖片描述

@TableId

  • 作用:將屬性所對應的字段指定為主鍵
  • value:指定主鍵的字段,要和數據庫表中的屬性名一致,要不然最終的查詢結果是null
  • type:設置主鍵生成策略,不指定的話默認雪花算法 (數據庫勾選自動遞增)
    • 雪花算法的核心思想就是:使用一個64 bit的 long 型的數字作為全局唯一ID。算法中還引入了時間戳,基本上保證了自增特性。
  • 參考博客
    • Mybatis-plus知識總結(一)TableId、TableField和TableName注解的作用
    • MYBatis-Plus常用注解@TableName、@TableId、@TableField、@TableLogic
    @TableId(value = "id", type = IdType.AUTO)private Long id;

@TableName

  • 作用:設置實體類對應的表明
  • value:value指定數據庫中的表名
  • 參考博客
    • Mybatis-plus知識總結(一)TableId、TableField和TableName注解的作用
@TableName("user")

@NotBlank

  • 作用:參數校驗,適用于 String 類型的數據上,加了@NotBlank 注解的參數不能為 Null 且 trim() 之后 size > 0,必須有實際字符
  • message :自定義異常信息
  • 參考博客
    • @NotNull @NotEmpty @NotBlank java校驗注解 validation
    @ApiModelProperty(value = "用戶名")@NotBlank(message = "用戶名不能為空")private String username;

@JsonFormat

Jackson中定義的一個注解,是一個時間格式化注解,寫在屬性上

  • 作用:把DATE類型的數據轉化成為我們想要的格式(用于返回日期數據時的時間格式化)
  • pattern:自定義轉化時間格式
  • 參考博客
  • SpringBoot - @JsonFormat注解詳解
<!-- JSON工具類 -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.6</version>
</dependency>
    @ApiModelProperty(value = "出生年月日")@JsonFormat(pattern="yyyy-MM-dd")private Date birthday;

@TableField

  • 作用:解決實體類的字段名與數據庫中的字段名不匹配的問題
  • value:指定數據庫表中字段名
    @ApiModelProperty(value = "邏輯刪除")@TableField("`delete`")private Integer delete;

@TableLogic

  • 作用:在實體類中屬性加上@TableLogic注解,表示該字段是邏輯刪除字段,實現邏輯刪除
  • value = “未刪除的值,默認值為0”
    @ApiModelProperty(value = "邏輯刪除")@TableLogic@TableField("`delete`")private Integer delete;

Dao層

@Repository

  • 作用:將 DAO 類聲明為 Bean,表明這個類具有對數據庫CRUD的功能,用在持久層的接口上
  • 參考博客
    • @Repository注解的作用和用法,以及和@Mapper的區別

@Mapper

  • 作用:相當于一個mapper.xml文件,將接口生成一個動態代理類
  • 目的:不再寫mapper映射文件
  • 參考博客
    • Mapper層注解講解

@Param

  • 作用:標記方法參數,指定該參數的名稱和類型,在使用該參數時可以通過名稱來引用。
  • Constants.WRAPPER:表明參數是wrapper條件
  • 參考博客
    • @Param詳解
List<WarnVo> selectWarn(@Param(Constants.WRAPPER) QueryWrapper<WarnVo> wrapper);

Service層

@Service

  • 作用:標記服務層 Bean
  • 好處:使用Service注解的服務類為其他組件提供了一種復用業務邏輯的方法,能夠減少重復代碼的編寫
  • 參考博客
    • Spring注解之Service詳解

@Autowired

  • 作用:對類成員變量、方法及構造函數進行標注,完成自動裝配的工作
  • required參數默認是true,開啟自動裝配
  • 參考博客
    • @Autowired用法詳解
  • @Autowired和@Resource注解區別
    • 1、@autowired注解由spring提供,只按照bytype注入;@resource注解由j2ee提供,默認按照byname自動注入。
    • 2、@autowired默認按類型進行裝配,@resource默認按照名稱進行裝配。

@Override

  • 作用:表示被標注的方法是一個重寫方法
  • 好處:幫助自己檢查是否正確的重寫父類方法,明顯的提示看代碼的人,這是重寫的方法
  • 參考博客
    • 詳解@Override注解

@Transactional

  • 作用:事物的注解,保證數據的一致性
  • 聲明式事務:將具體業務與事務處理部分解耦,代碼侵入性很低
  • 在對多張表進行操作的時候加上事務注解
  • 參考博客
    • @Transactional詳解

Controller層

@RestController

@RestController = @Controller + @ResponseBody

  • 作用:對控制器類進行注釋,同時擁有@Controller + @ResponseBody注解的功能
  • 使用該注解響應數據可以是文本或JSON數據類型
  • 屬于springmvc,并不屬于springboot
  • 參考博客
    • @RestController注解

@RequestMapping

  • 作用:處理請求地址映射,可用于映射一個請求或一個方法,可以用在類或方法上
  • 標注在方法上,表示在類的父路徑下追加方法上注解中的地址將會訪問到
  • 參考博客
    • @RequestMapping詳解
@RequestMapping("/tain/warn")
public class TainWarnController {@Autowiredprivate ITainWarnService iTainWarnService;@Autowiredprivate SysDictService sysDictService;@Autowiredprivate IDeviceService iDeviceService;@GetMapping("/queryWarnMessage")public R queryWarnMessage(@RequestParam Map<String,Object> params){PageUtils page = iTainWarnService.queryWarnPage(params);return R.ok().put("page",page);}
}

此時訪問路徑就要加上/tain/warn/queryWarnMessage

RESTFUL URL

RESTful是一種web api的標準,也就是一種url設計規范

@GetMapping(“路徑”)

  • 作用:從服務器取出資源(一項或多項)
  • 當客戶端發送HTTP GET請求時,Spring Boot會自動將請求映射到具有相應URL路徑的控制器方法上
  • 參考博客
    • Spring Boot中的@GetMapping注解,如何使用

@PostMapping(“路徑”)

  • 作用:在服務器新建一個資源
  • 自動轉換為 JSON 或 XML:@PostMapping 注解可以自動將請求體中的數據轉換為 Java 對象,并將返回值轉換為 JSON 或 XML 格式,方便客戶端解析處理
  • 參考博客
    • Spring Boot 中的 @PostMapping 注解,如何使用

@PutMapping(“路徑”)

  • 作用:在服務器更新資源(客戶端提供完整資源數據)
  • 不常用,僅作了解

@DeleteMapping(“路徑”)

  • 作用:從服務器刪除資源
  • 不常用,僅作了解

@RequestParam

  • 作用:將請求參數區域的數據映射到控制層方法的參數上
  • 三大屬性
    • value:請求參數名(必須配置)
    • required:是否必需,默認為 true,即 請求中必須包含該參數,如果沒有包含,將會拋出異常(可選配置)
    • defaultValue:設置默認值,如果設置了該值,required 將自動設為 false,無論你是否配置了required,配置了什么值,都是 false(可選配置)
  • 參考博客
    • @RequestParam詳解

@PathVariable

  • 作用:便捷地提取URL中的動態參數
  • 只支持一個屬性value,類型是為String,代表綁定的屬性名稱
  • 在@RequestMapping請求路徑中,將需要傳遞的參數用花括號{}括起來,然后,通過@PathVariable(“參數名稱”)獲取URL中對應的參數值。如果@PathVariable標明參數名稱,則參數名稱必須和URL中參數名稱一致
  • 參考博客
    • 請求參數獲取:@RequestParam、@PathVariable、@RequestHeader、@CookieValue、@RequestBody、@RequestAttribute注解詳細分析
    @GetMapping("/info/{id}")public R info(@PathVariable("id") Long id){User user = iUserService.getById(id);return R.ok().put("user",user);}

@SysLog

  • 作用:標記方法或類,以記錄系統日志或操作日志
  • 可以在目標方法或類上添加注解,并在需要記錄日志的操作處調用相應的日志記錄邏輯
    在這里插入圖片描述

@ResponseBody

  • 作用:將java對象轉為json格式的數據,然后直接寫入HTTP response 的body中;一般在異步獲取數據時使用
  • 參考博客
    • @ResponseBody用法詳解
    • 淺析@ResponseBody注解作用和原理

非三層架構層

@Component

  • 作用:實現bean的注入,取代 xml配置文件
  • 用于非三層架構但是需要被使用的層

@EnableScheduling

  • 作用:啟用 Spring 的定時任務

@Scheduled

  • 作用:指定執行的時間間隔或時間點
  • fixedRate:指定時間間隔
  • cron:使用表達式來決定時間點
  • 在線Cron表達式生成器
  • 參考博客
    • 每天一個注解之@EnableScheduling
    @Scheduled(fixedRate = 5000)  // 每隔5秒執行一次public void doTask() {
    @Scheduled(cron = "5 * * * * ? ")//每五秒執行一次public void doTask(){

二者皆可

@SpringBootApplication

@SpringBootApplication這個注解是springboot啟動類上的一個注解,是一個組合注解,也就是由其他注解組合起來,它的主要作用就是標記說明這個類是springboot的主配置類,springboot可以運行這個類里面的main()方法來啟動程序
這個注解主要由三個子注解組成:

  1. @SpringBootConfiguration
  2. @EnableAutoConfiguration
  3. @ComponentScan

以上是本人在做一個小項目時遇到的所有注解,如有不對評論指出改正,謝謝`(∩_∩)′

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

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

相關文章

rk3568-一種基于wifi的網絡環境搭建方案

前言&#xff1a; PC--Ubuntu--開發板 三者之間的網絡互相ping通很重要&#xff0c;尤其是ubuntu和開發板互ping成功最關鍵&#xff0c;關系到nfs&#xff0c;tftp等常用的開發手段。現在大多數開發板都帶有wifi芯片&#xff0c;現在提供一種方案可以三個設備無線地搭建網絡環境…

Open3D0.14.1編譯、安裝、demo使用教程

寫在前面 本文內容 Open3D在0.15版之前&#xff0c;沒有提供編譯好的包&#xff0c;要使用C版本必須自己編譯&#xff0c;本文是Open3D0.14.1在Windows下和Linux(Ubuntu1804)下的編譯、使用教程&#xff1b; Open3D其他版本的編譯和使用相關教程見 各個版本的Open3D、PCL的編譯…

STL常見容器(map/multimap容器)---C++

STL常見容器目錄&#xff1a; 8.map/ multimap容器8.1 map基本概念8.2 map構造和賦值8.3 map大小和交換8.4 map插入和刪除8.5 map查找和統計8.6 map容器排序8.6.1 內置類型排序8.6.2 自定義類型排序8.6.3 自定義和內置類型混合排序 8.map/ multimap容器 兩者基本一致&#xff…

用node寫后端環境運行時報錯Port 3000 is already in use

解決方法:關閉之前運行的3000端口,操作如下 1.WindowR輸入cmd確定,打開命令面板 2.查看本機端口詳情 netstat -ano|findstr "3000" 3.清除3000端口 taskkill -pid 41640 -f 最后再重新npm start即可,這里要看你自己項目中package.joson的啟動命令是什…

Flink:動態表 / 時態表 / 版本表 / 普通表 概念區別澄清

博主歷時三年精心創作的《大數據平臺架構與原型實現&#xff1a;數據中臺建設實戰》一書現已由知名IT圖書品牌電子工業出版社博文視點出版發行&#xff0c;點擊《重磅推薦&#xff1a;建大數據平臺太難了&#xff01;給我發個工程原型吧&#xff01;》了解圖書詳情&#xff0c;…

Python+PySide6實現一個選擇文件并做處理的GUI辦公小工具(完整代碼)

目錄 專欄導讀背景安裝注意事項完整代碼結尾專欄導讀 ?? 歡迎來到Python辦公自動化專欄—Python處理辦公問題,解放您的雙手 ?????? 博客主頁:請點擊——> 一晌小貪歡的博客主頁求關注 ?? 該系列文章專欄:請點擊——>Python辦公自動化專欄求訂閱 ?? 此外還…

天翼云登錄參數JavaSrcipt逆向

天翼云登錄參數 password 、comParam_curTime、comParam_seqCode、comParam_signature JavaSrcipt逆向 目標網站 https://m.ctyun.cn/wap/main/auth/login?redirect/my 目標參數 要逆向的有 password、comParam_curTime、comParam_seqCode、comParam_signature 四個參數 …

安卓使用ExoPlayer出現膨脹類異常

1.導包 implementation com.google.android.exoplayer:exoplayer-core:2.15.1implementation com.google.android.exoplayer:exoplayer-ui:2.15.1 2.在Androidifest.xml加入權限&#xff0c;我這里加了忘了與讀寫權限 <uses-permission android:name"android.permissio…

【Fastadmin/ThinkPHP5】使用Queue隊列方法詳細步驟

在現代應用開發中&#xff0c;合理利用隊列系統能夠有效提升系統的性能和響應速度&#xff0c;尤其是在處理耗時較長的任務時&#xff0c;如發送大量郵件、執行定時任務等。下面是如何在ThinkPHP框架中設置和使用隊列功能的詳細指南&#xff1a; 1.配置隊列服務 在applicatio…

Tomcat服務部署、優化

一 Tomcat的基本介紹 Tomcat概念 Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器&#xff0c;屬于輕量級應用服務器&#xff0c;在中小型系統和并發訪問用戶不是很多的場合下被普遍使用&#xff0c;是開發和調試 JSP 程序的首選。 當在一臺機器上配置好Apache 服務器…

VMwareWorkstation17.0虛擬機搭建WindowsXP虛擬機(完整安裝步驟詳細圖文教程)

VMwareWorkstation17.0虛擬機搭建WindowsXP虛擬機&#xff08;完整安裝步驟詳細圖文教程&#xff09; 一、Windows XP1.Windows XP簡介2.Windows XP 的下載地址 二、配置 Windows XP 虛擬機運行環境1.新建虛擬機2.選擇類型配置3.插入WinXP光盤映像文件(ISO)4.選擇操作系統5.命名…

Home Assistant:基于Python的智能家居開源系統詳解

Home Assistant&#xff1a;基于Python的智能家居開源系統詳解 在數字化和智能化的時代&#xff0c;智能家居系統成為了現代家庭的新寵。它們能夠讓我們更加方便地控制家中的各種設備&#xff0c;實現自動化和個性化的居住體驗。其中&#xff0c;Home Assistant作為一款基于Pyt…

美易官方:3月1日美股成交額前20

3月1日&#xff0c;美股市場熱鬧非凡&#xff0c;成交額前20的公司股票交易活躍&#xff0c;其中&#xff0c;英偉達&#xff08;NVIDIA&#xff09;的股價收在800美元之上&#xff0c;創下了歷史新高。這一天的股市走勢充分展示了投資者對于科技股的熱烈追捧&#xff0c;同時也…

手機NFC錄入門禁數據,實現手機開門

近場通信&#xff08;Near Field Communication&#xff0c;簡稱NFC&#xff09;&#xff1a; 是一種新興的技術&#xff0c;使用了NFC技術的設備&#xff08;例如移動電話&#xff09;可以在彼此靠近的情況下進行數據交換&#xff0c;是由非接觸式射頻識別&#xff08;RFID&am…

【二分】二分模板+二分題目

一、樸素二分 . - 力扣&#xff08;LeetCode&#xff09;. - 備戰技術面試&#xff1f;力扣提供海量技術面試資源&#xff0c;幫助你高效提升編程技能,輕松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/binary-search/description/ int left 0, right nums.…

【leetcode】隨機鏈表的復制

大家好&#xff0c;我是蘇貝&#xff0c;本篇博客帶大家刷題&#xff0c;如果你覺得我寫的還不錯的話&#xff0c;可以給我一個贊&#x1f44d;嗎&#xff0c;感謝?? 點擊查看題目 思路: struct Node* copyRandomList(struct Node* head) {struct Node* curhead;//1.copy原鏈…

MWC 2024丨美格智能CEO杜國彬出席中國聯通創新成果發布會并發表主題演講

2月26日&#xff0c;中國聯通在MWC2024 巴塞羅那期間舉辦了以“算網為基&#xff0c;智領未來”為主題的創新成果發布會&#xff0c;集中展示最新的創新成果與最佳實踐。 中國通信標準化協會理事長聞庫、GSMA首席財務官Louise Easterbrook、中國聯通副總經理梁寶俊、華為ICT銷…

每日一“類“:深入理解Qt的心臟《QObject》

Qt框架以其強大的跨平臺能力和豐富的用戶界面元素而廣受開發者歡迎&#xff0c;而QObject類無疑是Qt框架心臟的所在。本文將深入探討QObject&#xff0c;揭示其提供的核心功能以及如何在Qt項目中有效利用這個基類。 核心功能 信號與槽 Qt獨特的信號與槽機制是其事件通信的基…

AWS 認證報名考試流程

AWS認證的考試包括&#xff0c;可以申請線上或者線下考試。 考試類型 線上&#xff1a; 優點&#xff1a;方便快捷無需通勤&#xff0c;隨時約隨時考&#xff0c;基本上每天都可以 缺點&#xff1a;對環境要求較高&#xff0c;屋子里只能有自己&#xff0c;而且不能有其他聲音…

yolov9 瑞芯微芯片rknn部署、地平線芯片Horizon部署、TensorRT部署

特別說明&#xff1a;參考官方開源的yolov9代碼、瑞芯微官方文檔、地平線的官方文檔&#xff0c;如有侵權告知刪&#xff0c;謝謝。 模型和完整仿真測試代碼&#xff0c;放在github上參考鏈接 模型和代碼。 之前寫過yolov8檢測、分割、關鍵點模型的部署的多篇博文&#xff0c;y…