3.1 AOP的概念
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注
[查看视频教程]
官方给的图:
AOP从字面意思来看,很难理解,下面我来举一个例子来说明AOP。
在上面的例子中,我们的每个业务中都需要编写权限校验的业务代码。
所以我们从容器中取出的每一个业务对象都是有权限校验的业务功能的,满足了需求。但是问题是程序员在开发业务的同时也需要添加类似与权限校验这样的公共业务。
我们再来看下面的方式:
从上面的图中我们可以看出,在spring的容器中,添加商品和添加文章的业务对象中只有对应的业务处理,没有权限校验的业务,权限校验的业务我们专门写一个权限校验业务对象。但是当我们从spring中取出添加商品和添加文章的业务对象时,spring给我们的是 权限校验业务对象+添加商品业务对象 = 添加商品业务对象(代理) 权限校验业务+添加文章业务 = 添加文章业务(代理)。
也就是spring通过动态代理的方式动态的组合权限校验的业务和我们自己的业务。这样的方式明显可以达到“让程序员专心做事”的效果。
这就是springAOP的实现。通过提取出公共的业务作为切面,当我们从容器中获取我们的业务对象时spring通过动态代理的方式将公共切面按照需求织入到我们的业务的前后生成一个代理对象。这样我们的业务中就有了切面中的业务。但是在开发的时候我们是不需要关心切面的业务的。
注意:AOP是一个思想,springAOP只是AOP的一种实现方式和思路。AOP还有其他的实现框架,比如:AspectJ。
好的下一章我们就开始研究springAOP的配置和使用。
我是戴着假发的程序员,分享技术,分享经验,如果要转载,请注明:出自戴着假发的程序员