场景一: 记录日志
场景二: 监控方法运行时间 (监控性能)
场景三: 权限控制
场景四: 缓存优化 (第一次调用查询数据库,将查询结果放入内存对象, 第二次调用, 直接从内存对象返回,不需要查询数据库 )
场景五: 事务管理 (调用方法前开启事务, 调用方法后提交关闭事务 )

说明:

jdk动态代理是接口的重写(适用于实现接口的类,spring aop的默认实现)

cglib动态代理是类的继承

提示:aop本质是动态对方法增强,避免代码入侵,优雅的实现横向扩展,是对oop的补充