最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

WebSocketHandlerDecorator的使用方法

2021-10-31 16:16 作者:向上生長之路  | 我要投稿

使用Spring整合WebSocket實時通信技術(shù),在消息處理過程中,如果消息處理的邏輯很多,會造成消息處理類的代碼臃腫,代碼冗長;此時可以借助于Spring為我們提供的WebSocketHandlerDecorator裝飾類,來分離不同的邏輯處理部分,使得代碼清晰起來

參考Spring文檔:https://docs.spring.io/spring-framework/docs/5.3.4/reference/html/web.html#websocket

  • SpringBoot版本 2.4.5

WebSocketHandlerDecorator的用途

  • 降低代碼耦合度

  • 動態(tài)增加類的行為

  • 符合單一職責的設(shè)計原則

  • 符合開閉原則的設(shè)計原則

使用方式

Spring為我們提供的WebSocketHandlerDecorator裝飾者類,是裝飾者模式的實現(xiàn),基于該類,可以用它裝飾一些具有額外行為的消息處理器
舉例~
假如我們通過WebSocket收到的消息需要持久化到數(shù)據(jù)庫中,elasticsearch搜索引擎中,便于后續(xù)業(yè)務流程中用到,這時就可以用WebSocketHandlerDecorator來裝飾之前編寫的消息處理類,不需要修改之前的消息處理類代碼!
以下給出示例代碼,來演示W(wǎng)ebSocketHandlerDecorator的使用過程

1.新建PersistenceToDatabaseWebSocketHandlerDecorator,來處理消息持久化到數(shù)據(jù)庫的邏輯


2.新建PersistenceToElasticsearchWebSocketHandlerDecorator,來處理消息持久化到elasticsearch的邏輯



3.配置裝飾類生效,將消息處理類一層層的傳入構(gòu)造函數(shù)中


運行效果

啟動工程,通過前端代碼發(fā)送消息來測試
完整前端代碼參考:https://github.com/netbuffer/UItest/blob/master/websocket/index.html



觀察后端日志輸出,可以看到我們的裝飾類相應邏輯已經(jīng)運行了


如果后續(xù)不需要將消息寫入數(shù)據(jù)庫或者elasticsearch中,那就可以修改消息處理類的配置部分,將裝飾類刪除,而不需要直接修改原有的消息處理代碼部分



完整測試工程參考:https://github.com/netbuffer/spring-boot-websocket-demo


WebSocketHandlerDecorator的使用方法的評論 (共 條)

分享到微博請遵守國家法律
襄垣县| 丰县| 武城县| 广丰县| 牙克石市| 留坝县| 海宁市| 枝江市| 宁明县| 平安县| 安徽省| 建始县| 东港市| 西盟| 城固县| 广平县| 惠州市| 大渡口区| 荥阳市| 凤阳县| 西盟| 深州市| 明水县| 兰西县| 鹤壁市| 武汉市| 浮山县| 麻栗坡县| 秦皇岛市| 哈尔滨市| 伊通| 富源县| 上栗县| 拉萨市| 莆田市| 永善县| 台南市| 鄄城县| 治多县| 报价| 织金县|