关于Advisor和PointcutAdvior
Advisor是用来持有(hold)一种advice的,它有一个getAdvice()方法,专门来得到其所持有的advice而pointcutAdvior继承自Advisor接口,同时本身又提供了一个getPointcut方法,这十分明确地说明:pointcutAdvior是用来组装advice和pointcut这两个切面的重要组成元素的,因此我们说pointcutAdvisor才是一个切面的实例模块,而不是有些书上说的Advisor!
理论上讲:我们想实现自己的一个切面,只要需提供一个实现advisor接口的类和一个实现pointcut接口的类,然后用一个pointcutAdvisor接口的实现类来把把来个类组装起来就构成了我们自己的切面实例.但是事实上spring框架为我们提供了很多的子接口和实现类,来简化我们的工作,这包括:
1.advice:AfterAdvice AfterReturningAdvice MethodBeforeAdvice 等接口
2.pointcut:NameMatchMethodPointcut(最常用),还有与之相对应的DynamicMethodMatcherPointcut
3.pointcutAdvisor:在框架里每有一个pointcut,就会有一个与之对应的pointcutAdvisot例如上面提到的NameMatchMethodPointcut就有一个对其对应的StaticMethodMatcherPointcut.另外还有一种功能十分
强大的正则表达式pointcutAdvisor:RegexpMethodPointcutAdvisor(注意:这个pointcutAdvisor是没有
与其对应的pointcut存在的.也说是没有RegexpMethodPointcut这么一个类),它使用正则表达式来描述
它的pointcut. 最后提到的一个就是:DefaultPointcutAdvisor这是一个使用频率很高的
PointcutAdvisor,一般来说我们就是用它来组装我们写好的advice和pointcut!
它有两个属性:advice和pointcut正好用来接受我们提供给它的dvice和pointcut.
关于pointcutAdvisot的使用:两种情况:一种是我们定义自己的advice,又定义了一个pointcut,那么,
显然,这时我们应该使用DefaultPointcutAdvisor来装配我们的Dvice和pointcut.第二种情况是:
我们其实可以只定义自己的advice,然后直接选用一种pointcutAdvisor来装配,至于pointcut,则是
通过设置这种pointcutAdvisor的一个pattern属性来在这个ointcutAdvisor的内部自动生成一个
pointcut.这种方法较第一种要简洁不少,代码的书写量也少了很多(因为不用专门去写一个pointcut类
和其对就的配制了),缺点是这个装配的过程显得有点"古怪",原为看起来好像少了pointcut.
最后再次强调的时:如果采取第二种方式,那么我们应该首选:RegexpMethodPointcutAdvisor.它通过正则
表达式来指定切入点,其若能是十分强大而方便的.
分享到:
相关推荐
SPRING:aspect和advisor区别
ADVISOR是基于matlab/simulink开发的先进电动汽车软件,主要功能是用于分析,适合混合动力汽车仿真,通过设计与改进程序可做不同的混动汽车分析。
Spring AOP 拦截器 Advisor Spring AOP 拦截器 Advisor
advisor在高版本matlab中使用的补丁:ADVISOR2002patchforR13.m 使用说明: 1、首先安装Matlab 2、双击advisor2002_install,会自动在C盘根目录建立ADVISOR2002文件夹; 3、 将ADVISOR2002patchforR13目录下的...
Spring AOP Advisor:(顾问) 1.一种织入方式 2.实际上Adivce封装版。 3.可以动态的将切面指定对应切入点 Spring AOP Advisor继承实现关系 Advisor PointCutAdvisor:可以灵活的指定当前接口下的哪一个...
"WordPress主题:Advisor v1.4.1咨询,业务,财务主题2022年最新版 WordPress主题/WordPress插件/html网站模板/iOS app源码/安卓app源码 每天更新上传!" ---------- 每天更新发布最新WordPress主题、HTML主题、...
Oracle+10G+最佳20位新特性:SQL+Advisor+和+ADDM
机器人顾问Robo Advisor平台
山姆Smart Advisor移动地图界面实验
该软件从1994年11月份开始开发和使用,最初是用来帮助美国能源部DOE(DepartmentofEnergy)开发某混合动力汽车的动力系统,随后功能逐渐扩展,目前最新的正式版本ADVISOR2002可以对传统汽车、纯电动汽车和混合动力汽车...
ADVISOR(Advanced VehIcle SimulatOR,高级车辆仿真器)是由美国可再生能源实验室NREL(National RenewableEnergy Laboratory)在MATLAB和SIMULINK软件环境下开发的高级车辆仿真软件。 该软件从1994年11月份开始开发和...
ADVISOR软件的学习入门教程,简单易学,清晰易懂,简单的入门级教程
分享一些关于混合动力仿真advisor的资料-advisor.rar 分享一些关于混合动力仿真advisor的资料 ADVISOR软件的混合仿真方法 基于ADVISOR2002混合动力汽车控制策略模块开发 基于ADVISOR软件的双轴驱动混合动力汽车...
ADVISOR 是基于 matlab/simulink 开发的先进电动汽车软件,主要功能是用于分析,而不是设计,从我对其help 的阅读了解,ADVISOR 需要且最好安装matlab6.1 上,当然 matlab6.5+.
advisor2002仿真软件,可用于学生学习
微信公众号:吉姆餐厅ak学习更多原始知识,欢迎关注。 概述Spring Aop在Spring框架... advisor :顾问的意思,封装了spring aop中的切点和通知。 advice :通知,也就是aop中增强的方法。对以上三类核心类对应的UML分别
参考链接:Device Advisor - AWS IoT Core (amazon.com)(https://docs.aws.amazon.com/zh_c
7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 7.5.6. 使用“全局”...
电动汽车仿真软件ADVISOR2002,可以方便的进行各类配置条件下的动力及性能仿真
语言:English MYWeb Advisor为您的浏览体验增加了强大且非侵入式的安全性 适用于MAC的MYAntivirus MYWeb Advisor MYWeb Advisor扩展为您的浏览体验增加了...搜索结果:MYWeb Advisor在搜索结果中标记恶意站点和/或元