當前位置:
首頁 > 最新 > SpringBoot2常用模塊整合的整理,值得收藏,附github項目地址

SpringBoot2常用模塊整合的整理,值得收藏,附github項目地址

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。

毫無疑問,是編寫後台服務的最流行的Java框架了,基於默認配置的可以讓你編寫後台服務變得異常簡單,以下我整理了項目中的常見模塊的整合整理,希望對你有幫助;

SpringBoot常用模塊整合


介面認證

Restful API的認證一般通過利用用戶名和密碼,換取token獲得,這個token一般有時效,建議24小時,如果你的API介面需要認證才能使用,按以下步驟:

與的映射關係一般被保存在緩存中,可以是,或本地緩存都可以,以下以Guava Cache為例:

(可選)引入 guava 依賴,如果你使用其他緩存框架,請忽略

以下代碼定義一個緩存對象:

緩存讀寫:

添加一個攔截器:

在類里加入攔截器,如下:

這樣,如果訪問:http://localhost:9333/api/v2/test/hello?token=test

這個地址,必須傳入token參數,否則會返回錯誤,後台可根據參數的值獲取當前登錄用戶信息

資料庫操作:MyBatis+代碼自動生成


使用類自動生成,和,內含基本的資料庫操作,將自動生成的代碼拷貝到工程的src目錄下即可,以下是配置步驟:

使用步驟

maven配置

編寫一個類,如下:

配置,使用druid數據源

基本的資料庫操作可採用寫法,如保存或新增User:

或採用本身提供了幾十個方便的資料庫操作,如查找ID為1的User:

具體可參看官方文檔,點擊這裡

Dubbo微服務整合

如果您的項目需要調用微服務,作為服務的消費方,請按以下步驟進行:

引入maven依賴

配置dubbo信息,在文件中,加入:

開始使用

在Controller中引入Dubbo服務,如下:

API文檔Swagger整合

詳見:使用SwaggerUI生成API文檔

數據返回支持JSON和XML

作為一個開放平台,我們可能需要對響應的數據格式支持多種形式,目前主流的是JSON和XML,那麼一個介面,如何根據傳入的參數同時支持這兩種格式,以下步驟:

引入 依賴

編寫一個自定義的,如下:

註:SpringBoot2以後,是過期的,應該使用

這樣,當我們訪問:

http://localhost:9333/api/v2/test/hello?format=xml

時返回的是XML格式,否則默認是json格式,即如果要返回XML格式,在Restful API的介面後面加入參數

後台表單欄位檢驗


前台的參數信息提交到後台,後台可能需要檢驗某些參數的合法性,這時候我們可以使用,按如下步驟:

引入maven

對請求參數校驗

介面引入註解,如:

合法請求:

http://localhost:9333/api/v2/reg?username=test&nick=ss&age=23&password=2323324234

非法請求:

密碼不通過:http://localhost:9333/api/v2/reg?username=test&nick=ss&age=23&password=232

輸出:

分庫分表技術

詳見《分庫分表技術》

Redis整合:對象緩存/發布訂閱

Redis使用場景:

:後台服務可將消息實時推送給頻道上,或其他服務訂閱來自的頻道消息,將數據實時推送給端,或後台服務本身接收來自的頻道消息;

:可用於將後台的任意對象緩存起來,根據定義的緩存策略;

以下介紹兩者的使用步驟

共有步驟

依賴引入

類定義

定義配置文件,如下:

以上我們配置好了,然後就可以在項目中使用了

使用`Redis`的`發布訂閱`模式

可以新建一個的類,編寫發布和訂閱方法,如下:

在中只需要 RedisService即可調用發布訂閱方法

對象緩存使用

需要對對象進行緩存,只需要使用註解即可,如下:

介面安全鑒權


自行設置一套app申請後台,讓用戶申請appid和app-seckey;

對調用介面的參數列表按

對K升序排列,得到有序參數列表;

將應用密匙以app_key為鍵名,組成URL鍵值對拼接得到字元串S(key1=value1&key2=value2&…&app_key=密匙)

對字元串S做MD5運算,得到MD5全轉為大寫,得到介面請求籤名sign;

簽名有效期為5分鐘,參數值為Null不參與簽名,V必須使用URL編碼(https://tools.ietf.org/html/rfc1738)

驗簽舉例

參數名 參數值

app_id 8

time_stamp 1532504664

nonce_str xxx

sign值:

註:介面鑒權應用在針對安全性高標準的介面,如涉及交易,下訂單等操作,應用在開放平台的高安全性的介面中

日誌中心整合

主要思路是自定義,然後將日誌通過發往日誌中心,詳見《基於Netty的日誌採集中心設計與實現》

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Sumslack團隊 的精彩文章:

TAG:Sumslack團隊 |