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容器就会把这个类当做一个切面。

10-Spring-AOP编程实现-实践得真知-上篇(耗时一个上午制作)

上述代码,还缺什么?

没错,还缺乏的是关于切点的定义,所以接下来,我们需要先来定义“连接点”,才可以将上述的信息做完善

2,创建连接点(Join point)

正如前面所述,SpringAOP是方法级的,所以我们也是以某个类的某个方法来做为连接点

10-Spring-AOP编程实现-实践得真知-上篇(耗时一个上午制作)

10-Spring-AOP编程实现-实践得真知-上篇(耗时一个上午制作)

3,完善之后的切面定义如下:

在原先的基础上,添加切点的定义

10-Spring-AOP编程实现-实践得真知-上篇(耗时一个上午制作)

4,到此为此,切面,通知(个人习惯叫业务增强),切点(SpringAOP的影响范围),连接点(具体拦截的方法)都已集齐,而织入的工作就交给Spring框架了,我们只是按照Spring跟我们约定好的规则进行编程即可。

这就是框架的魅力,按照约定编程,剩下的实现全部交给他

5,所以,下面我们来编写测试程序

5.1 采用XML的方式来进行配置

10-Spring-AOP编程实现-实践得真知-上篇(耗时一个上午制作)

编写测试类代码:

10-Spring-AOP编程实现-实践得真知-上篇(耗时一个上午制作)

输出结果:

10-Spring-AOP编程实现-实践得真知-上篇(耗时一个上午制作)

说明下:SpringAOP的配置,还有的方式,后续我们讲到声明式事务配置的时候再说。

5.2 采用注解的方式来实现配置

10-Spring-AOP编程实现-实践得真知-上篇(耗时一个上午制作)

编写测试类代码:

10-Spring-AOP编程实现-实践得真知-上篇(耗时一个上午制作)

查看测试结果:

10-Spring-AOP编程实现-实践得真知-上篇(耗时一个上午制作)

好了,相信大家一路看过来,对SpringAOP应该有一个非常清晰的认识了。

耗时一个上午,效率有点低了。


分享到:


相關文章: