日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

async异步注解和aspect切面注解等注解的原理

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 async异步注解和aspect切面注解等注解的原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在我們使用spring框架的過程中,在很多時候我們會使用@async注解來異步執行某一些方法,提高系統的執行效率。今天我們來探討下spring是如何完成這個功能的。

  1、spring 在掃描bean的時候會掃描方法上是否包含@async的注解,如果包含的,spring會為這個bean動態的生成一個子類,我們稱之為代理類(?)。
  2、代理類是繼承我們所寫的bean的,然后把代理類注入進來,在執行此方法時會到代理類中,代理類判斷此方法需要異步執行,就不會調用父類 (我們原本寫的bean)的對應方法。
  3、spring自己維護了一個隊列,他會把需要執行的方法,放入隊列中,等待線程池去讀取這個隊列,完成方法的執行, 從而完成了異步的功能。

因為這種實現方法,在同一個類中的方法調用,添加@async注解是失效的!原因是當你在同一個類中的時候,方法調用是在類體內執行的,spring無法截獲這個方法調用。

那在深入一步,spring為我們提供了AOP,面向切面的功能。他的原理和異步注解的原理是類似的:

spring在啟動容器的時候,會掃描切面所定義的類。在這些類被注入的時候,所注入的也是代理類,當你調用這些方法的時候,本質上是調用的代理類。
通過代理類再去執行父類相對應的方法,那spring只需要在調用之前和之后執行某段代碼就完成了AOP的實現了!

?

轉載于:https://www.cnblogs.com/xyhero/p/5ae19e694629d760b0ed59917f25f365.html

總結

以上是生活随笔為你收集整理的async异步注解和aspect切面注解等注解的原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。