10-Spring-AOP编程实现-实践得真知-上篇
首先,要明确两个问题:
1,AOP编程可不是Spring独有的,Spring只是支持AOP编程的框架之一,这一点非常重要,切勿搞反了关系。
2,AOP分两类,一类可以对方法的参数进行拦截,一类是对方法进行拦截,SpringAOP属于后者,所以Spring的AOP是属于方法级的
那么,Spring是如何实现AOP的?基本上来说,我们常用的有两种方式:
1,基于@AspectJ注解的方式
2,基于XML配置的方式
本篇,我们先来谈基于@AspectJ注解的实现方式
我们按照上篇文章的术语顺序,来一一转换为对应的代码
1,创建切面(Aspect)
在Spring中,只要在类上面加上@Aspect注解,SpringIOC容器就会把这个类当做一个切面。
上述代码,还缺什么?
没错,还缺乏的是关于切点的定义,所以接下来,我们需要先来定义“连接点”,才可以将上述的信息做完善
2,创建连接点(Join point)
正如前面所述,SpringAOP是方法级的,所以我们也是以某个类的某个方法来做为连接点
3,完善之后的切面定义如下:
在原先的基础上,添加切点的定义
4,到此为此,切面,通知(个人习惯叫业务增强),切点(SpringAOP的影响范围),连接点(具体拦截的方法)都已集齐,而织入的工作就交给Spring框架了,我们只是按照Spring跟我们约定好的规则进行编程即可。
这就是框架的魅力,按照约定编程,剩下的实现全部交给他
5,所以,下面我们来编写测试程序
5.1 采用XML的方式来进行配置
编写测试类代码:
输出结果:
说明下:SpringAOP的配置,还有<aop:config>的方式,后续我们讲到声明式事务配置的时候再说。
5.2 采用注解的方式来实现配置
编写测试类代码:
查看测试结果:
好了,相信大家一路看过来,对SpringAOP应该有一个非常清晰的认识了。
耗时一个上午,效率有点低了。