SpringBoot可插拔開箱即用之組件開發(fā)

問題

由于適應(yīng)公司不斷發(fā)展帶來的,售后問題,要求我們要對所有服務(wù)進(jìn)行,主動檢查.避免服務(wù)異常,造成損失。在這里將該項目的思路及springboot的自動化配置使用分享給大家,希望共同進(jìn)步。學(xué)習(xí)。有共同愛好的童鞋,可以點擊關(guān)注小編,如果看完本文想學(xué)習(xí)下源碼,可以私信我,發(fā)送autoconfig關(guān)鍵字獲取,地址。

目前的方式是這樣:

網(wǎng)關(guān)部門定時掃描各個服務(wù),進(jìn)行監(jiān)控狀態(tài)檢查,并通知給指定負(fù)責(zé)人.

實現(xiàn)邏輯:

1. 要求每個線上服務(wù)暴露一個/status 地址,并返回指定json,將項目中依賴的數(shù)據(jù)庫連接信息返回

實現(xiàn)要求:

1. 組件式開發(fā)

2. 引入即可用,自動監(jiān)控項目中數(shù)據(jù)庫連接

3. 暴露一個指定的可供網(wǎng)關(guān)掃描的地址

技術(shù)實現(xiàn)方式:

1. 引入spring-boot-autoconfigure自動配置

2. 引入spring-boot-actuator 使用EndPoint 定制暴露給網(wǎng)關(guān)的掃描地址

1. 在autoconfigure中實現(xiàn)定制url的方式是這樣的,而不是使用@RequestMapping注解,id就是我們的url,其他屬性見注釋,非常清楚

2. 加入配置信息,交給合項目負(fù)責(zé)人維護(hù)

3 .導(dǎo)入我們定制的節(jié)點

4. 數(shù)據(jù)庫的健康我們按照Spring的套路來

首先定義個接口,然后是抽象模板類,然后是各個數(shù)據(jù)源的實現(xiàn)類

Mongo檢查

消息隊列檢查

5. 將以上數(shù)據(jù)檢查組件都加入到配置中

注意,要判斷,如果服務(wù)中沒有引入過 Mongodb等數(shù)據(jù)源,就不要注入,否則強制注入會保存,這里要注意下,這幾個注解的意思。這里就不介紹了。

6 . 將這些配置交給autoconfigure 管理,通過服務(wù)中的springboot main 啟動中@EnableAutoConfiguration 引入,我們組建中的配置。

7 .重點來了,看我們的工具類怎么寫的,邏輯就是

從上下文中獲取到我們項目中依賴的數(shù)據(jù)源,首先要判斷是否存在,并實現(xiàn)IStatus繼承抽象接口中status()方式返回boolean來判斷是否數(shù)據(jù)源連接狀態(tài),并返回json給網(wǎng)關(guān),執(zhí)行EndPoint中的invoke方法返回

8 .使用方法

application.yml 中添加

應(yīng)用啟動驗證

接口驗證

看到這里,基本就介紹完了,是不是很簡單,其實沒什么難點,spring是契約式開發(fā),沒有會不會一說,只有會不會用,看的多了就會了。最后感謝你的閱讀!感興趣的同學(xué)可以關(guān)注小編,會不斷分享實戰(zhàn)知識給大家。如果你發(fā)現(xiàn)有錯誤,請?zhí)岢鰧氋F意見,會及時改正!謝謝

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 親愛的乖乖: 這周上了六天學(xué),今天放學(xué)后你還去黃老師家補數(shù)學(xué),回到家不知疲憊地看書,讓媽媽抱抱辛苦又努力的你! 今...
    喵星人媽媽閱讀 134評論 0 2

友情鏈接更多精彩內(nèi)容