- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AOP之Pointcut、Advisor
AOP之Pointcut、Advisor
上篇的所定义的Advice都是直接织入至代理接口执行前后的,或者在执行方法过程中出现异常的时候织入。事实上还有更加细致的织入时机。Pointcut定义了感兴趣的Jointpoint(Advice的应用时机)。在spring中,使用PointcutAdvisor提供的Pointcut实例,具体结合Advice,Spring内建的Pointcut都有对应的PointcutAdvisor。
官方文档解释:在Spring里,一个advisor是一个仅仅包含一个通知对象和与之关联的切入点表达式的切面。
除了引入这种特殊形式,任何advisor都可以和任何通知一起工作。 org.springframework.aop.support.DefaultPointcutAdvisor是最常用的advisor类。
例如,它可以和: MethodInterceptor,BeforeAdvice 或者 ThrowsAdvice一起使用。
在Spring里有可能在同一个AOP代理里模糊advisor和通知类型。
例如,你可以在一个代理配置里使用一个interception环绕通知,一个异常通知和一个前置通知:Spring将负责自动创建所需的拦截器链。
我的通俗解释:就是将一个advice和对应不同的规则进行匹配,就是将advice给包装升级了,使用的时候和advice一样使用
?1、NameMatchMethodPointcoutAdvisor(这里是一个织入时机的更加细致的处理,通过名字来对应,这样很明显的一个好处就是,我可以针对要代理类中的部分方法进行织入,而不是每个方法都进行织入)view plaincopy to clipboardprint?bean id=beforeAdvice class=com.itcast.advice.LogBeforeAdvice/bean?bean id=afterAdvice class=com.itcast.advice.LogAfterAdvice/bean?bean id=helloProxy class=org.springframework.aop.framework.ProxyFactoryBean?property name=target ref=helloSpeaker/property?property name=interceptorNames??list??valuehelloAdvise/value??/list?/property?/bean?!--helloAdvise的名字匹配的方式来匹配要进行advice处理的方法--?bean id=helloAdvise class=org.springframework.aop.support.NameMatchMethodPointcutAdvisor?property name=mappedName value=hello*/property?property name=advice ref=beforeAdvice/property?/bean?bean id=beforeAdvice class=com.itcast.advice.LogBeforeAdvice/beanbean id=afterAdvice class=com.itcast.advice.LogAfterAdvice/beanbean id=helloProxy class=org.springframework.aop.framework.ProxyFactoryBeanproperty name=target ref=helloSpeaker/propertyproperty name=interceptorNames?list?valuehelloAdvise/value?/list/property/bean!--helloAdvise的名字匹配的方式来匹配要进行advice处理的方法--bean id=helloAdvise class=org.springframework.aop.support.NameMatchMethodPointcutAdvisorproperty name=mappedName value=hello*/propertyproperty name=advice ref=beforeAdvice/property/bean
或者还可以定义成如下方式:view plaincopy to clipboardprint?!--helloAdvise直接指定要引入的advice方法的那些类文件中的具体方法列表--?
您可能关注的文档
- 2013年商法单选题解析.docx
- 2013年早稻集中育秧技术操作规程(软盘抛秧).doc
- 通信原理第三版_蒋青 重邮.pdf
- 2013年质量自检报告.doc
- 2014云南省迪庆州信用社考试模拟习题.doc
- 2014年8月带宝宝日照吴家台旅游攻略.docx
- 2014年云南省迪庆州公务员招聘考试《行测》冲刺模拟题.doc
- 2014年云南省迪庆州公务员招聘考试行测预测真题.doc
- 2014年云南省迪庆公务员招聘考试模拟练习.doc
- 2014年云南省迪庆州公务员招聘考试语言类练习题.doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)