aop,面向切面编程,是面向对象编程的一种补充。
aop底层,就是采用动态代理模式实现的。采用了两种代理:jdk动态代理,与CGLIB的动态代理
面向切面编程,就是将交叉业务逻辑封装成切面,利用aop容器的功能将切面织入到主业务逻辑中。所谓交叉业务逻辑是指,通用的,与主业务逻辑无关的代码,如安全检查,事务,日志等。
例子:转账,在真正转账业务逻辑前后,比如转账之前,需要进行日志记录,加载事务,结束事务等交叉逻辑,而这些业务逻辑与主业务并没有直接关系,但他们的代码量很多,占了一大部分,并且会干扰程序员的逻辑思维,在处理主业务时,也处理其他事务,aop就是把他们分开,做到分开处理。