第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

【Spring實戰(zhàn)——面向切面的Spring】1.4通過切點來選擇連接點

    与大多数技术一样,AOP已经形成了自己的术语。

​ 通知和切点是切面的最基本元素。
​ 在Spring AOP中,要使用AspectJ的切点表达式语言来定义切点。
​ 关于Spring AOP的AspectJ切点,最重要的一点就是Spring仅支持 AspectJ切点指示器 (pointcut designator ) 的一个子集。
file

​ 当我们查看如上所展示的这些Spring支持的指示器时,注意只有execution指示器是实际执行匹配的,而其他的指示器都是用来 限制匹配的。这说明execution指示器是我们在编写切点定义时最 主要使用的指示器。在此基础上,我们使用其他指示器来限制所匹配的切点。

1.4.1 编写切点

​ 为了阐述Spring中的切面,我们需要有个主题来定义切面的切点。为 此,我们定义一个Performance接口:

package com.spring.point;

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

​ Performance可以代表任何类型的现场表演,如舞台剧、电影或音 乐会。假设我们想编写Performance的perform ()方法触发的通 知。

​ 图4.4展现了一个切点表达式,这个表达式能够设置当perform()方 法执行时触发通知的调用。

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

小猿解释这个语句,即拦截目标方法执行切面规则。
file

图4 .4 使用AspectJ切点表达式来选择Performance 的perform()方法

     我们使用execution()指示器选择Performance的perform()方 法。
     方法表达式以“*”号开始,表明了我们不关心方法返回值的类型。
     然后,我们指定了全限定类名和方法名。
     对于方法参数列表,我们使用两个点号 ( ..) 表明切点要选择任意的perform ()方法,无论该方法的入参是什么。

​ 现在假设我们需要配置的切点仅匹配concert包。在此场景下,可 以使用within ()指示器来限制匹配,如图4.5所示。

img

图4 .5 使用within()指示器限制切点范围

​ 对图4.5所含的元素进行讲解:
file

1.4.2 在切点中选择bean

​ 除了表4. 1所列的指示器外,Spring还引入了一个新的bean()指示 器,它允许我们在切点表达式中使用bean的ID来标识bean。bean ()

​ 使用bean ID或bean名称作为参数来限制切点只匹配特定的bean。 例如,考虑如下的切点:

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

​ 在这里,我们希望在执行Performance的perform()方法时应用通 知,但限定bean的ID为woodstock。

​ 在某些场景下,限定切点为指定的bean或许很有意义,但我们还可以 使用非操作为除了特定ID以外的其他bean应用通知:

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

​ 在此场景下,切面的通知会被编织到所有ID不为woodstock的bean 中。

​ 现在,我们已经讲解了编写切点的基础知识,让我们再了解一下如何 编写通知和使用这些切点声明切面

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消