JWT令牌
JSON Web Token
作用:以json格式在各方之間安全傳遞資訊,是數字簽名的。
格式:標頭Header.有效載荷Payload.簽名Signature
前兩部分用Base64編碼,可以被前端翻譯並理解。第三部分使用編碼後的前兩部分,加上一個金鑰,用頭部宣告的加密演算法進行簽名,保證令牌沒有被篡改。
swagger生成介面文件
註解 | 意義 |
---|---|
@Api | 用在類上,例如Controller,表示對類的說明 |
@ApiModel | 用在類上,例如entity、DTO、VO |
@ApiModelProperty | 用在屬性上,描述屬性資訊 |
@ApiOperation | 用在方法上,例如Controller的方法,說明方法的用途、作用 |
注意專案啟動類需要加@EnableTransactionManagement註解
navicat設定某欄位唯一
欄位索引設定為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。