最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

面向切面的Spring通過切點(diǎn)來選擇連接點(diǎn)實(shí)例詳解

 更新時(shí)間:2023年10月23日 09:34:36   作者:胡楊  
這篇文章主要為大家介紹了面向切面的Spring通過切點(diǎn)來選擇連接點(diǎn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

導(dǎo)讀

與大多數(shù)技術(shù)一樣,AOP已經(jīng)形成了自己的術(shù)語。通知和切點(diǎn)是切面的最基本元素。

在Spring AOP中,要使用AspectJ的切點(diǎn)表達(dá)式語言來定義切點(diǎn)。

關(guān)于Spring AOP的AspectJ切點(diǎn),最重要的一點(diǎn)就是Spring僅支持 AspectJ切點(diǎn)指示器 (pointcut designator ) 的一個(gè)子集。

圖4.1

當(dāng)我們查看如上所展示的這些Spring支持的指示器時(shí),注意只有execution指示器是實(shí)際執(zhí)行匹配的,而其他的指示器都是用來 限制匹配的。這說明execution指示器是我們在編寫切點(diǎn)定義時(shí)最 主要使用的指示器。在此基礎(chǔ)上,我們使用其他指示器來限制所匹配的切點(diǎn)。

編寫切點(diǎn)

為了闡述Spring中的切面,我們需要有個(gè)主題來定義切面的切點(diǎn)。為 此,我們定義一個(gè)Performance接口:

package com.spring.point;

/**
 * @author huyang
 */
public interface Performance {
    public void perform();
}

Performance可以代表任何類型的現(xiàn)場表演,如舞臺(tái)劇、電影或音 樂會(huì)。假設(shè)我們想編寫Performance的perform ()方法觸發(fā)的通 知。

圖4.4展現(xiàn)了一個(gè)切點(diǎn)表達(dá)式,這個(gè)表達(dá)式能夠設(shè)置當(dāng)perform()方 法執(zhí)行時(shí)觸發(fā)通知的調(diào)用。

execution(*concert.Performance.perform(...))

小猿解釋這個(gè)語句,即攔截目標(biāo)方法執(zhí)行切面規(guī)則。

圖4.4

使用AspectJ切點(diǎn)表達(dá)式來選擇Performance 的perform()方法

我們使用execution()指示器選擇Performance的perform()方 法。

方法表達(dá)式以“*”號(hào)開始,表明了我們不關(guān)心方法返回值的類型。

然后,我們指定了全限定類名和方法名。

對(duì)于方法參數(shù)列表,我們使用兩個(gè)點(diǎn)號(hào) ( ..) 表明切點(diǎn)要選擇任意的perform ()方法,無論該方法的入?yún)⑹鞘裁础?/p>

現(xiàn)在假設(shè)我們需要配置的切點(diǎn)僅匹配concert包。在此場景下,可 以使用within ()指示器來限制匹配,如圖4.5所示。

圖4.5

使用within()指示器限制切點(diǎn)范圍

對(duì)圖4.5所含的元素進(jìn)行講解:

在切點(diǎn)中選擇bean

除了表4. 1所列的指示器外,Spring還引入了一個(gè)新的bean()指示 器,它允許我們在切點(diǎn)表達(dá)式中使用bean的ID來標(biāo)識(shí)bean。bean ()

使用bean ID或bean名稱作為參數(shù)來限制切點(diǎn)只匹配特定的bean。 例如,考慮如下的切點(diǎn):

execution(* concert.Performance.perform()) and bean (*woodstock)

在這里,我們希望在執(zhí)行Performance的perform()方法時(shí)應(yīng)用通 知,但限定bean的ID為woodstock。

在某些場景下,限定切點(diǎn)為指定的bean或許很有意義,但我們還可以 使用非操作為除了特定ID以外的其他bean應(yīng)用通知:

execution(* concert.Performance.perform()) and !bean (`woodstock`)

在此場景下,切面的通知會(huì)被編織到所有ID不為woodstock的bean 中。

現(xiàn)在,我們已經(jīng)講解了編寫切點(diǎn)的基礎(chǔ)知識(shí),讓我們再了解一下如何 編寫通知和使用這些切點(diǎn)聲明切面

以上就是面向切面的Spring通過切點(diǎn)來選擇連接點(diǎn)實(shí)例詳解的詳細(xì)內(nèi)容,更多關(guān)于Spring切點(diǎn)選擇連接點(diǎn)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot攔截器實(shí)現(xiàn)API安全驗(yàn)證的示例詳解

    SpringBoot攔截器實(shí)現(xiàn)API安全驗(yàn)證的示例詳解

    在開放平臺(tái)和第三方集成的項(xiàng)目中,如何確保 API 調(diào)用的安全性和可靠性是一個(gè)重要課題,本文將詳細(xì)介紹如何基于 Spring Boot 攔截器和 HMAC-SHA256 算法,構(gòu)建一套輕量級(jí)但足夠安全的 API 驗(yàn)簽機(jī)制,希望對(duì)大家有所幫助
    2025-11-11
  • SWT(JFace)體驗(yàn)之ViewForm的使用

    SWT(JFace)體驗(yàn)之ViewForm的使用

    SWT(JFace)體驗(yàn)之ViewForm的使用
    2009-06-06
  • Spring深入分析講解BeanUtils的實(shí)現(xiàn)

    Spring深入分析講解BeanUtils的實(shí)現(xiàn)

    java知識(shí)體系統(tǒng)有很多數(shù)據(jù)實(shí)體,比較常用的DTO、BO、DO、VO等,其他類似POJO概念太老了現(xiàn)在基本廢棄掉了,本篇幅直接忽略,對(duì)于這幾種數(shù)據(jù)實(shí)體各自代表的含義和應(yīng)用場景先做一下簡單描述和分析
    2022-06-06
  • maven為MANIFEST.MF文件添加內(nèi)容的方法

    maven為MANIFEST.MF文件添加內(nèi)容的方法

    這篇文章主要介紹了maven為MANIFEST.MF文件添加內(nèi)容的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • SpringBoot thymeleaf eclipse熱部署方案操作步驟

    SpringBoot thymeleaf eclipse熱部署方案操作步驟

    今天小編就為大家分享一篇關(guān)于SpringBoot thymeleaf eclipse熱部署方案操作步驟,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 如何基于JavaFX開發(fā)桌面程序

    如何基于JavaFX開發(fā)桌面程序

    這篇文章主要介紹了如何基于JavaFX開發(fā)桌面程序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • mybatis的MappedStatement線程安全探究

    mybatis的MappedStatement線程安全探究

    這篇文章主要為大家介紹了mybatis的MappedStatement線程安全示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Java如何執(zhí)行cmd命令

    Java如何執(zhí)行cmd命令

    這篇文章主要介紹了Java如何執(zhí)行cmd命令問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • SpringBoot 中常用注解及各種注解作用

    SpringBoot 中常用注解及各種注解作用

    本篇文章將介紹幾種SpringBoot 中常用注解及各個(gè)注解的作用,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-03-03
  • SpringMvc+Mybatis+Pagehelper分頁詳解

    SpringMvc+Mybatis+Pagehelper分頁詳解

    這篇文章主要介紹了SpringMvc+Mybatis+Pagehelper分頁詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下的相關(guān)資料
    2017-01-01

最新評(píng)論

兴仁县| 德庆县| 皮山县| 松桃| 孟村| 庆安县| 安宁市| 宝清县| 临高县| 乌海市| 安阳县| 鹤庆县| 河西区| 霍邱县| 新干县| 莫力| 汉源县| 太白县| 志丹县| 安宁市| 会昌县| 新巴尔虎右旗| 从化市| 任丘市| 牟定县| 天长市| 新乡市| 黄骅市| 兴宁市| 南开区| 沂水县| 清徐县| 云浮市| 买车| 全南县| 射洪县| 商洛市| 崇文区| 台东县| 焉耆| 富平县|