aop就是切面编程,spring的很多功能都基于这个实现的,比如spring的缓存管理、spring的权限管理和spring的事务管理等等全都是靠aop这个切面编程来实现的。
我们可以用spring实现统一日志处理,日志处理其实就是我们通过aop这个切面在我们访问方法和接口的时候统一记录日志而不用在每一个方法和接口里面去重复的进行这个操作了,还有统一的异常处理。
我们还可以使用spring实现访问控制,比如我们的权限接口大多数都是基于aop的,用户在调用我们的某些资源是可以校验是否有权限,我们的权限的底层就是使用的aop
还有事务的处理,如spring的生命周期
最后还有spring的缓存管理,我们去访问一些数据的时候可以从缓存中提取,我们想要的是啥就不用一个一个拿了,只需就统一的拦截统一的给就行了
aop的原理就是通过代理方式实现的,然后就是代理是通过反射来实现的,就是aop面向切面编程,就是aop是面向切面编程,通过代理的方式 (idk或cglib)为程序统一添加功能,解决公共问题