当前位置: 移动技术网 > 科技>操作系统>windows > 详细解读 Spring AOP 面向切面编程(二)

详细解读 Spring AOP 面向切面编程(二)

2019年11月02日  | 移动技术网科技  | 我要评论

帕提古丽·托合提,中国尚义,板报内容

本文是《详细解读 spring aop 面向切面编程(一)》的续集。

在上篇中,我们从写死代码,到使用代理;从编程式 spring aop 到声明式 spring aop。一切都朝着简单实用主义的方向在发展。沿着 spring aop 的方向,rod johnson(老罗)花了不少心思,都是为了让我们使用 spring 框架时不会感受到麻烦,但事实却并非如此。那么,后来老罗究竟对 spring aop 做了哪些改进呢?
现在继续!

9. spring aop:切面

之前谈到的 aop 框架其实可以将它理解为一个拦截器框架,但这个拦截器似乎非常武断。比如说,如果它拦截了一个类,那么它就拦截了这个类中所有的方法。类似地,当我们在使用动态代理的时候,其实也遇到了这个问题。需要在代码中对所拦截的方法名加以判断,才能过滤出我们需要拦截的方法,想想这种做法确实不太优雅。在大量的真实项目中,似乎我们只需要拦截特定的方法就行了,没必要拦截所有的方法。于是,老罗同志借助了 aop 的一个很重要的工具,advisor(切面),来解决这个问题。它也是 aop 中的核心!是我们关注的重点!
也就是说,我们可以通过切面,将增强类与拦截匹配条件组合在一起,然后将这个切面配置到 proxyfactory 中,从而生成代理。
这里提到这个“拦截匹配条件”在 aop 中就叫做 pointcut(切点),其实说白了就是一个基于表达式的拦截条件罢了。
归纳一下,advisor(切面)封装了 advice(增强)与 pointcut(切点 )。当您理解了这句话后,就往下看吧。
我在 greetingimpl 类中故意增加了两个方法,都以“good”开头。下面要做的就是拦截这两个新增的方法,而对 sayhello() 方法不作拦截。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网