08-你真的看懂了SpringAOP的运行机制吗?

之前我们谈了Spring-IOC,这是非常巧妙的思想,今天我们继续来探讨Spring的另一个重要特性


Spring-AOP

AOP(Aspect Oriented Programming):面向切面编程

什么是面向切面编程,我的理解是,在没有使用面向切面编程之前,我们是经常把业务的核心代码和非核心业务代码混搭在一起。

我们以数据库的操作为例来说明:

1,获取连接对象

2,执行SQL(核心业务代码)

3.1,如果有异常,则回滚事务

3.2, 如果没有异常,则提交事务

4,关闭连接对象

上述的几个部署,“2”是核心业务代码,其他都是非核心业务代码,但是我们又必须写

而面向切面编程就是为了解决这样的问题,将这些非核心业务代码进行抽离,这样开发者只需要关注“核心业务代码”即可。

这样开发效率自然提高。

在项目开发中,SpringAOP是非常常用的技能之一,下面我画一个图来说明,他都做了什么

那如果我们要实现类似的效果,会用到什么技术?

这里就需要用到动态代理技术+反射技术