精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AOP要怎么使用

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

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

1 第一個AOP示例

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

引入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類:

圖片

在方法上標(biāo)識注解

圖片

2 AOP的通知類型

圖片

AOP的5種通知類型。

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

3 AOP通知的執(zhí)行順序

關(guān)于執(zhí)行順序,我們跑一邊測試如下:

有異常拋出的情況下,執(zhí)行順序:

圖片

正常執(zhí)行順序:

圖片

小結(jié)一下執(zhí)行順序:

Around > Before > AfterReturning/AfterThrowing > After > Around

4 切點(diǎn)表達(dá)式都有哪些

開始的示例中使用了自定義注解來寫切點(diǎn)表達(dá)式。

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

目前SpringAOP 支持的切點(diǎn)表達(dá)式書寫關(guān)鍵字有這些 execution,within,this,target,args,@target,@args,@within,@annotation

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

5 組合切點(diǎn)

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

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

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

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

總結(jié)

本片給出了SpringAOP在SpringBoot中的示例,并且分析了各種通知類型的執(zhí)行時機(jī)。并介紹了組合切點(diǎn)表達(dá)式的一些用法,以后項(xiàng)目中如果使用到AOP相關(guān)的知識我們就可以直接上手啦。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 自定義
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    8693
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    338

    瀏覽量

    14312
  • AOP
    AOP
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    11090
  • ADVISOR
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7642
收藏 人收藏

    評論

    相關(guān)推薦

    AOP知識詳解

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

    Spring AOP如何破解java應(yīng)用

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

    單片機(jī)EM88F711N產(chǎn)生不了燒錄器的AOP2文檔

    義隆單片機(jī)EM88F711N芯片,在義隆官方網(wǎng)站下載的eUIDEII_v2.19.60.21軟件上編譯通過,編譯成功產(chǎn)生不了燒錄器的AOP2文檔,是什么原因產(chǎn)生不了AOP2文檔,那個老大知道是不是請告知以下。
    發(fā)表于 10-28 15:07

    13WS9301AOP13WS9302AOP13LA769317PR掩膜參數(shù)和原理資料分享

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

    具有AoP技術(shù)的雷達(dá)傳感器

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

    個體與群體思維狀態(tài)下的AOP語言

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

    AOP中使用標(biāo)注改進(jìn)日志功能的實(shí)現(xiàn)

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

    AOP及其在數(shù)字檔案館系統(tǒng)中的應(yīng)用

    面向切面編程(AOP,Aspect-Oriented Programming)是面向?qū)ο缶幊痰囊环N擴(kuò)展技術(shù),能很好的解決橫切關(guān)注點(diǎn)問題和相關(guān)設(shè)計(jì)難題。首先,介紹了AOP的發(fā)展現(xiàn)狀及其基本概念。其次結(jié)合數(shù)字檔案館
    發(fā)表于 03-01 16:04 ?10次下載

    基于反射機(jī)制的AOP模型的研究_張波

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

    基于AOP的科研申報(bào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

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

    AoP技術(shù)如何改善外部近場感應(yīng)應(yīng)用

    AWR1843AOP 具有多模可編程數(shù)字信號處理器,允許您為多個應(yīng)用重新配置相同傳感器。
    發(fā)表于 10-19 09:05 ?431次閱讀

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

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

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

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

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

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

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

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