在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AOP要怎么使用

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-09 16:18 ? 次閱讀

AOP(Aspect-Oriented Programming)經常會出現在面試過程中,AOP到底有沒有用,要怎么使用呢。本篇來一起撥開迷霧!

1 第一個AOP示例

我們會一次將所有的通知類型都覆蓋到,創建一個切面Advisor,并且將切點都綁定到一個自定義注解上面。

引入AOP的Starts:

< dependency >
    < groupId >org.springframework.boot< /groupId >
    < artifactId >spring-boot-starter-aop< /artifactId >
< /dependency >

自定義注解AOPTest:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AOPTest {
}

TestAspect類:

圖片

在方法上標識注解

圖片

2 AOP的通知類型

圖片

AOP的5種通知類型。

  1. @Around 環繞通知,環繞切點的通知,比如在方法執行前后。
  2. @Before 前置通知,切點之前執行,但是不會阻止切點方法的執行,除非拋出異常。
  3. @After 后置通知, 切點方法跳出的時候執行。(不管是否拋出異常都會執行)。
  4. @AfterReturning 返回后通知,切點方法正常完成后執行
  5. @AfterThrowing 異常通知, 方法拋出異常的時候執行。

3 AOP通知的執行順序

關于執行順序,我們跑一邊測試如下:

有異常拋出的情況下,執行順序:

圖片

正常執行順序:

圖片

小結一下執行順序:

Around > Before > AfterReturning/AfterThrowing > After > Around

4 切點表達式都有哪些

開始的示例中使用了自定義注解來寫切點表達式。

@Pointcut(value = "@annotation(AOPTest)")
public void pointcut() {
}

目前SpringAOP 支持的切點表達式書寫關鍵字有這些 execution,within,this,target,args,@target,@args,@within,@annotation

除了上述的Spring支持的寫法之外,AspectJ 還有許多切點表達式書寫方式Spring并未支持,后期應該會看情況添加一些。

5 組合切點

我們可以使用 &&,||, ! 等合并切點表達式,篩選出我們想要的切點。Spring官方的例子如下:

@Pointcut("execution(public * *(..))")
    private void anyPublicOperation() {}

    @Pointcut("within(com.xyz.myapp.trading..*)")
    private void inTrading() {}

    @Pointcut("anyPublicOperation() && inTrading()")
    private void tradingOperation() {}
  • anyPublicOperation是第一個切點表達式。
  • inTrading 是第二個,表示trading包下面的左右方法。
  • 第三個切點表達式使用&& 符號,取前兩個切點的交集 ”anyPublicOperation() && inTrading()“
    表示trading包下面的所有public的方法。

總結

本片給出了SpringAOP在SpringBoot中的示例,并且分析了各種通知類型的執行時機。并介紹了組合切點表達式的一些用法,以后項目中如果使用到AOP相關的知識我們就可以直接上手啦。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 自定義
    +關注

    關注

    0

    文章

    12

    瀏覽量

    8772
  • spring
    +關注

    關注

    0

    文章

    340

    瀏覽量

    14901
  • AOP
    AOP
    +關注

    關注

    0

    文章

    40

    瀏覽量

    11215
  • ADVISOR
    +關注

    關注

    0

    文章

    5

    瀏覽量

    7743
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    AOP知識詳解

    今天我們繼續看看AOP相關的知識,前面說到了Javassit,Spring AOP,通過該篇,讓你對AOP有更完整的認識。 AOP 再看AOP
    的頭像 發表于 09-25 11:14 ?1266次閱讀
    <b class='flag-5'>AOP</b>知識詳解

    Spring AOP如何破解java應用

    前面我們看過javaassit是如何破解java應用,核心都是AOP相關的知識,今天我們看下Spring AOP是怎么回事! Spring-AOP spring 5.x版本 AOP面向
    的頭像 發表于 09-25 11:16 ?1125次閱讀
    Spring <b class='flag-5'>AOP</b>如何破解java應用

    13WS9301AOP13WS9302AOP13LA769317PR掩膜參數和原理資料分享

    , MT機芯彩電上采用,掩膜后型號仍為LA76930;在王牌TCL-AT2116Y彩電上采用,掩膜后型號為13 -WS9301-AOP;在TCL-AT21266Y彩電上采用,掩膜后型號為13
    發表于 05-20 06:03

    具有AoP技術的雷達傳感器

    傳感器封裝天線 (AoP) 技術消除了對高頻基板材料的需求,并降低了成本、制造復雜性和大概30%的布板空間。TI的AoP技術利用倒裝芯片封裝技術將天線放置在無塑封基板上,防止因天線穿過塑封材料時產生損耗
    發表于 11-04 06:32

    個體與群體思維狀態下的AOP語言

    引入群體思維狀態對GOAL進行改進,建立了個體與群體思維狀態下的AOP語言IG-AOP,給出其語法和操作語義。舉例證明該語言的表達力比GOAL強,可以較好地滿足多Agent合作求解過程的刻
    發表于 04-16 10:17 ?11次下載

    AOP中使用標注改進日志功能的實現

    面向方面編程(AOP)可避免橫切關注點對核心代碼的不良影響,但AOP 中的方法簽名匹配模式難以精確表達系統中的橫切點,使得在大中型系統中直接使用連接點匹配方式捕獲某些橫
    發表于 04-17 09:01 ?25次下載

    AOP及其在數字檔案館系統中的應用

    面向切面編程(AOP,Aspect-Oriented Programming)是面向對象編程的一種擴展技術,能很好的解決橫切關注點問題和相關設計難題。首先,介紹了AOP的發展現狀及其基本概念。其次結合數字檔案館
    發表于 03-01 16:04 ?10次下載

    基于反射機制的AOP模型的研究_張波

    基于反射機制的AOP模型的研究_張波
    發表于 03-17 15:47 ?0次下載

    基于AOP的科研申報系統的設計與實現

    也帶來困難。針對上述問題,本論文使用面向方面編程(AOP)的思想來解決,利用AOP中的方面(Aspect)來對非功能屬性進行建模,并采用UML中的類圖進行描述,并給出其在科研申報系統中權限控制模塊的實現,驗證了面向方面編程在解決
    發表于 11-11 17:44 ?8次下載
    基于<b class='flag-5'>AOP</b>的科研申報系統的設計與實現

    AoP技術如何改善外部近場感應應用

    AWR1843AOP 具有多??删幊虜底中盘柼幚砥?,允許您為多個應用重新配置相同傳感器。
    發表于 10-19 09:05 ?540次閱讀

    AWR6843AOP 單芯片60GHz至64GHz毫米波傳感器封裝天線 (AOP) 數據表

    電子發燒友網站提供《AWR6843AOP 單芯片60GHz至64GHz毫米波傳感器封裝天線 (AOP) 數據表.pdf》資料免費下載
    發表于 08-13 10:16 ?2次下載
    AWR6843<b class='flag-5'>AOP</b> 單芯片60GHz至64GHz毫米波傳感器封裝天線 (<b class='flag-5'>AOP</b>) 數據表

    IWR6843AOP單芯片60GHz至64GHz毫米波傳感器封裝天線(AOP)數據表

    電子發燒友網站提供《IWR6843AOP單芯片60GHz至64GHz毫米波傳感器封裝天線(AOP)數據表.pdf》資料免費下載
    發表于 08-14 11:44 ?1次下載
    IWR6843<b class='flag-5'>AOP</b>單芯片60GHz至64GHz毫米波傳感器封裝天線(<b class='flag-5'>AOP</b>)數據表

    AWR1843AOP單芯片77GHz和79GHz FMCW毫米波傳感器天線封裝(AOP)數據表

    電子發燒友網站提供《AWR1843AOP單芯片77GHz和79GHz FMCW毫米波傳感器天線封裝(AOP)數據表.pdf》資料免費下載
    發表于 08-15 10:42 ?0次下載
    AWR1843<b class='flag-5'>AOP</b>單芯片77GHz和79GHz FMCW毫米波傳感器天線封裝(<b class='flag-5'>AOP</b>)數據表

    IWR1843AOP單芯片77GHz和79GHz FMCW毫米波傳感器天線封裝(AOP)數據表

    電子發燒友網站提供《IWR1843AOP單芯片77GHz和79GHz FMCW毫米波傳感器天線封裝(AOP)數據表.pdf》資料免費下載
    發表于 08-15 11:20 ?1次下載
    IWR1843<b class='flag-5'>AOP</b>單芯片77GHz和79GHz FMCW毫米波傳感器天線封裝(<b class='flag-5'>AOP</b>)數據表

    基于機器學習的IWR6843AOP跌倒和姿態檢測實現

    電子發燒友網站提供《基于機器學習的IWR6843AOP跌倒和姿態檢測實現.pdf》資料免費下載
    發表于 09-03 10:02 ?2次下載
    基于機器學習的IWR6843<b class='flag-5'>AOP</b>跌倒和姿態檢測實現
    主站蜘蛛池模板: 日韩城人视频 | 夜夜夜夜夜夜夜工噜噜噜 | 5月婷婷6月丁香 | 毛片一级黄色 | 天天摸夜夜添夜夜添国产 | 午夜免费免费啪视频观看 | 国产午夜不卡在线观看视频666 | 最新国产你懂的在线网址 | 狠狠色狠狠色综合久久一 | 美脚连裤袜老师正在播放 | 色播影院性播影院私人影院 | 最新版天堂资源8网 | 四虎sihu新版影院亚洲精品 | 丁香婷婷综合五月六月 | 99视频热 | 亚洲免费小视频 | 国产午夜视频在线观看网站 | 亚洲va中文字幕 | 三级高清 | 久久精品国产亚洲片 | 国产精品天天看大片特色视频 | 4hc44四虎www视频 | 亚洲第一视频在线 | 免费在线观看a | 九九精品免费观看在线 | 在线看av的网址 | 久久精品亚瑟全部免费观看 | 四虎影视在线影院在线观看 | 亚洲va久久久噜噜噜久久 | 扒开末成年粉嫩的流白浆视频 | 一级毛片在线播放 | 欧洲妇女成人淫片aaa视频 | 色综合天天五月色 | 亚洲国产精品国产自在在线 | 深夜在线观看大尺度 | 黄色国产视频 | 免费爱爱网站 | 免费看欧美一级特黄a大片 免费看欧美一级特黄a大片一 | 久久国产乱子伦精品免费一 | 四虎国产精品免费视 | 1024手机在线看永久免费 |