<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Spring Boot Event 觀察者模式,輕松帶你實(shí)現(xiàn)業(yè)務(wù)解耦!

          共 1060字,需瀏覽 3分鐘

           ·

          2022-07-17 02:50

          點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)

          寫(xiě)在最前

          實(shí)際業(yè)務(wù)開(kāi)發(fā)過(guò)程中,業(yè)務(wù)邏輯可能非常復(fù)雜,核心業(yè)務(wù) + N個(gè)子業(yè)務(wù)。如果都放到一塊兒去做,代碼可能會(huì)很長(zhǎng),耦合度不斷攀升,維護(hù)起來(lái)也麻煩,甚至頭疼。還有一些業(yè)務(wù)場(chǎng)景不需要在一次請(qǐng)求中同步完成,比如郵件發(fā)送、短信發(fā)送等。

          MQ 確實(shí)可以解決這個(gè)問(wèn)題,但 MQ 重啊,非必要不提升架構(gòu)復(fù)雜度。針對(duì)這些問(wèn)題,我們了解一下 Spring Event。

          Spring Event 同步使用

          Spring Event(Application Event)其實(shí)就是一個(gè)觀察者設(shè)計(jì)模式,一個(gè) Bean 處理完成任務(wù)后希望通知其它 Bean 或者說(shuō)一個(gè) Bean 想觀察監(jiān)聽(tīng)另一個(gè)Bean 的行為。

          推薦一個(gè) Spring Boot 基礎(chǔ)實(shí)戰(zhàn)教程:

          https://github.com/javastacks/spring-boot-best-practice

          1.自定義事件

          定義事件,繼承ApplicationEvent的類(lèi)成為一個(gè)事件類(lèi)

          2.定義監(jiān)聽(tīng)器

          監(jiān)聽(tīng)并處理事件,實(shí)現(xiàn)ApplicationListener接口或者使用@EventListener注解

          3.定義發(fā)布者

          發(fā)布事件,通過(guò)ApplicationEventPublisher發(fā)布事件

          4.單測(cè)執(zhí)行

          執(zhí)行結(jié)果如下:

          Spring Event 異步使用

          有些業(yè)務(wù)場(chǎng)景不需要在一次請(qǐng)求中同步完成,比如郵件發(fā)送、短信發(fā)送等。另外,最新面試題整理好了,點(diǎn)擊Java面試庫(kù)小程序在線刷題。

          1.自定義事件

          2.定義監(jiān)聽(tīng)器

          推薦使用@EventListener注解

          3.定義發(fā)布者

          4.單測(cè)執(zhí)行(同步)

          執(zhí)行結(jié)果如下:

          5.開(kāi)啟異步

          啟動(dòng)類(lèi)增加@EnableAsync注解

          Listener類(lèi)需要開(kāi)啟異步的方法增加@Async注解

          6.單測(cè)執(zhí)行(異步)

          發(fā)送短信的線程顯示task-1,主線程結(jié)束后(總耗時(shí):(2017)毫秒)控制臺(tái)停止打印了

          來(lái)源:blog.csdn.net/csp732171109/article/details/124377254

              

          1、拖動(dòng)文件就能觸發(fā)7-Zip安全漏洞,波及所有版本

          2、進(jìn)程切換的本質(zhì)是什么?

          3、一次 SQL 查詢(xún)優(yōu)化原理分析:900W+ 數(shù)據(jù),從 17s 到 300ms

          4、Redis數(shù)據(jù)結(jié)構(gòu)為什么既省內(nèi)存又高效?

          5、IntelliJ IDEA快捷鍵大全 + 動(dòng)圖演示

          6、全球第三瀏覽器,封殺中國(guó)用戶這種操作!(文末送書(shū))

          點(diǎn)

          點(diǎn)

          點(diǎn)點(diǎn)

          點(diǎn)

          瀏覽 63
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  牛牛AV国产一区二区 | 中文字幕久久无码 | 乱伦大杂烩视频 | 无码窝在线观看 | 人人摸人人 |