好的各位小伙伴,上次分享的【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称号自动署理生成器
能够在图片上红框标出的部分,增加我们需求署理的方针类,以及所需的署理。
总之以上各种技术的运用 ,无非就是为了一个方针 :将我们编写的切面的完成(通知/顾问)织入到某些类的某些办法傍边。小伙伴们加油吧!
今天就到这儿了
再见了
拜拜
领取专属 10元无门槛券
私享最新 技术干货