JavaWeb-01記錄

ww0809發表於2024-04-03

JWT令牌

JSON Web Token
作用:以json格式在各方之間安全傳遞資訊,是數字簽名的。
格式:標頭Header.有效載荷Payload.簽名Signature
前兩部分用Base64編碼,可以被前端翻譯並理解。第三部分使用編碼後的前兩部分,加上一個金鑰,用頭部宣告的加密演算法進行簽名,保證令牌沒有被篡改。

swagger生成介面文件

註解 意義
@Api 用在類上,例如Controller,表示對類的說明
@ApiModel 用在類上,例如entity、DTO、VO
@ApiModelProperty 用在屬性上,描述屬性資訊
@ApiOperation 用在方法上,例如Controller的方法,說明方法的用途、作用

注意專案啟動類需要加@EnableTransactionManagement註解

navicat設定某欄位唯一

image
欄位索引設定為UNIQUE

mySQL模糊查詢

and name like concat('%',#{name},'%')
模糊查詢,防止sql注入。
concat()函式作用是字串拼接,只要有一個引數為null,返回值就是null。
為什麼能防止sql注入?
注入的本質是把使用者提交的引數直接當程式碼執行。
#{}用了PreparedStatement預編譯,輸入的引數只在sql編譯時起作用,當sql預編譯完後,傳入的引數就僅僅是引數,不會參與sql語句的生成;&{}不使用預編譯,傳入的引數會直接與sql語句進行拼接。

切面註解中的通知註解

@Before: 前置通知, 在方法執行之前執行
@After: 後置通知, 在方法執行之後執行
@AfterReturning: 返回通知, 在方法返回結果之後執行
@AfterThrowing: 異常通知, 在方法丟擲異常之後
@Around: 環繞通知, 圍繞著方法執行

left outer join & left join

用法相同,都是返回左表的全部行。

@Transactional

宣告式事務管理程式設計的註釋,由於AOP特性,該註解只能用於public方法。用於註解介面實現類或介面實現方法。
配置該註解表示該方法需要AOP攔截和事務處理。

BeanUtils的坑

spring和apache的commons都有BeanUtils,引入包時一定要注意。因為spring的引數前面是src,commons的後面是src。