java框架,springAOP-顾问的实现必须要把通知功能封装起来!

好的各位小伙伴,上次分享的【springAOP—实现通知系统的全过程】大家学会了吗?

如果学会了那么我们今天就继续分享!

好了又到了共享知识的时刻了

准备好了吗?

今天的共享的顾问【参谋】嘻嘻

顾问【参谋】(Advisor)

顾问【参谋】是将通知进行了包装,根据通知的不同类型,在不同的时刻点,将切面织入到指定的方针对象的某些连接点(办法)。

这是我们上一次的配置文件,今天我们继续在上面进行演示。

PointCutAdvisor 是顾问【参谋】的一种,它是一个接口,有两个完成类。

NameMatchMethodPointCutAdvisor 称号匹配办法 切入点顾问【参谋】。

利用称号匹配界说一个前置顾问【参谋】!包括了指定通知和指定的办法!

这样我们的这个前置顾问【参谋】就只对 addStudent 这个办法有效,对 serviceStudent 里边的其他办法没有作用。

注册前置顾问【参谋】生成器

测验一下

要是我们想要给其他的办法增加前置顾问【参谋】,能够像下图这样把一切的办法列出来。

或者,在利用 *Student ,这样就能够匹配一切办法名后面是 Student 的办法了。

注:这种办法只能匹配像addStudent,delStudent这种的,getStudentList是匹配不到的!

RegexpMethodPointCutAdvisor 正则表达式办法匹配切入点顾问

a: * 匹配前面的子表达式恣意次 比方: ab* 能匹配 a ab abb abbb ...

b: + 匹配前面的子表达式一次或者屡次 比方: ab+ 能匹配 ab abb abbb

c: . 匹配除" "之外的恣意字符,

.* 代表恣意的一个字符串

.*add.* 代表包括add字符的恣意字符串

我们来做一个例子,利用正则表达式界说一个后置顾问【参谋】,匹配一切含有add的办法。

注册后置顾问【参谋】署理生成器

测验一下!

只有 addStudent 办法有了后置通知,delStudent 办法是没有的!同样的这儿也是能够使用数组的办法。

spring供给了自动署理生成器来解决要界说多个署理的问题

有如下两种办法

默许advisor自动署理生成器

为配置文件里边一切的advisor自动生成署理 ,会署理配置文件里边一切注册的方针对象,我们之前注册署理生成器的一步就能够省掉了!

测验一下!留意我们直接调用了我们的类,并没有去调用任何署理生成器

这样有一个弊端,比方我们遇到只需求为几个类增加署理的情况,这个时候我们就能够利用第二种办法!

bean称号自动署理生成器

能够在图片上红框标出的部分,增加我们需求署理的方针类,以及所需的署理。

总之以上各种技术的运用 ,无非就是为了一个方针 :将我们编写的切面的完成(通知/顾问)织入到某些类的某些办法傍边。小伙伴们加油吧!

今天就到这儿了

再见了

拜拜

好的各位小伙伴,上次分享的【springAOP—实现通知系统的全过程】大家学会了吗?

如果学会了那么我们今天就继续分享!

好了又到了共享知识的时刻了

准备好了吗?

今天的共享的顾问【参谋】嘻嘻

顾问【参谋】(Advisor)

顾问【参谋】是将通知进行了包装,根据通知的不同类型,在不同的时刻点,将切面织入到指定的方针对象的某些连接点(办法)。

这是我们上一次的配置文件,今天我们继续在上面进行演示。

PointCutAdvisor 是顾问【参谋】的一种,它是一个接口,有两个完成类。

NameMatchMethodPointCutAdvisor 称号匹配办法 切入点顾问【参谋】。

利用称号匹配界说一个前置顾问【参谋】!包括了指定通知和指定的办法!

这样我们的这个前置顾问【参谋】就只对 addStudent 这个办法有效,对 serviceStudent 里边的其他办法没有作用。

注册前置顾问【参谋】生成器

测验一下

要是我们想要给其他的办法增加前置顾问【参谋】,能够像下图这样把一切的办法列出来。

或者,在利用 *Student ,这样就能够匹配一切办法名后面是 Student 的办法了。

注:这种办法只能匹配像addStudent,delStudent这种的,getStudentList是匹配不到的!

RegexpMethodPointCutAdvisor 正则表达式办法匹配切入点顾问

a: * 匹配前面的子表达式恣意次 比方: ab* 能匹配 a ab abb abbb ...

b: + 匹配前面的子表达式一次或者屡次 比方: ab+ 能匹配 ab abb abbb

c: . 匹配除" "之外的恣意字符,

.* 代表恣意的一个字符串

.*add.* 代表包括add字符的恣意字符串

我们来做一个例子,利用正则表达式界说一个后置顾问【参谋】,匹配一切含有add的办法。

注册后置顾问【参谋】署理生成器

测验一下!

只有 addStudent 办法有了后置通知,delStudent 办法是没有的!同样的这儿也是能够使用数组的办法。

spring供给了自动署理生成器来解决要界说多个署理的问题

有如下两种办法

默许advisor自动署理生成器

为配置文件里边一切的advisor自动生成署理 ,会署理配置文件里边一切注册的方针对象,我们之前注册署理生成器的一步就能够省掉了!

测验一下!留意我们直接调用了我们的类,并没有去调用任何署理生成器

这样有一个弊端,比方我们遇到只需求为几个类增加署理的情况,这个时候我们就能够利用第二种办法!

bean称号自动署理生成器

能够在图片上红框标出的部分,增加我们需求署理的方针类,以及所需的署理。

总之以上各种技术的运用 ,无非就是为了一个方针 :将我们编写的切面的完成(通知/顾问)织入到某些类的某些办法傍边。小伙伴们加油吧!

今天就到这儿了

再见了

拜拜

本文来自企鹅号 - 互联网科技变更媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏生信宝典

NGS基础 - GTF/GFF文件格式解读和转换

GFF 文件 GFF全称为general feature format,这种格式主要是用来注释基因组。 从 Ensembl 导出的GFF文件示例: X E...

2.4K100
来自专栏Hongten

spring开发_Annotation_AOP_Before增强处理

http://www.cnblogs.com/hongten/gallery/image/112691.html

11420
来自专栏FreeBuf

小白都能看懂的JSON反序列化远程命令执行

前言 Fastjson是一个由阿里巴巴维护的一个json库。它采用一种“假定有序快速匹配”的算法,是号称Java中最快的json库。Fastjson接口简单易...

51940
来自专栏程序猿DD

Spring框架中的设计模式(二)

在 上一篇 中我们在Spring中所谈到的设计模式涉及到了创建模式三剑客和1个行为模式(解释器模式)。这次我们会将眼光更多地关注在具有结构性和行为性的设计模式上...

42680
来自专栏生信小驿站

数据处理第3部分:选择行的基本和高级的方法

原文地址:https://suzan.rbind.io/2018/02/dplyr-tutorial-3/ 作者:Suzan Baert 这是系列dplyr...

10110
来自专栏Jed的技术阶梯

Java设计模式之模板方法模式

假设我们现在要造一批悍马汽车,悍马汽车有两个系列H1和H2,首先不考虑任何设计模式,看看设计的类图:

12630
来自专栏Coding迪斯尼

VUE+WebPack游戏设计:实现子弹发射击打外星人效果

11330
来自专栏菩提树下的杨过

利用xml轻松读取web.config中的用户自定义节

虽然vs.net2.0为我们提供了 ConfigurationManager.AppSettings["..."]; ConfigurationManage...

189100
来自专栏数据小魔方

左手用R右手Python系列之——noSQL基础与mongodb入门

12月的第一天,祝所有小伙伴儿的12月都能够被温柔以待。 能在学校悠哉写推送的日子所剩不多了,为了珍惜剩下所剩不多的推送机会,打算12月写一些实践性强一些的内...

57170
来自专栏Spark生态圈

[spark] Shuffle Read解析 (Sort Based Shuffle)

本文将讲解shuffle Reduce部分,shuffle的下游Stage的第一个rdd是ShuffleRDD,通过其compute方法来获取上游Stage S...

13410

扫码关注云+社区

领取腾讯云代金券