转载自 https://www.cnblogs.com/ltfxy/p/9869988.html
AOP : 面向切面编程,解决OOP(面向对象编程)开发遇到的问题,是oop的延伸和扩展
AOP的优点:不修改源码的情况下,对程序进行校验,日志记录,性能控制,事务控制
SpringAOP底层的实现原理:
- JDK动态代理:只能对实现了接口的类产生代理。(如果底层实现了接口默认JDK动态代理,底层自动切换)
- cglib动态代理(类似Javassist第三方的代理技术):对没有实现接口的类产生代理对象。生成子类对象。
AOP采用了横向抽取机制取代了传统的纵向继承
AOP的好处:
横向抽取,比如对项目下所有Dao下的某个方法增强权限管理或者日志记录,只需要在applicationContext.xml中进行配置即可。