AOP思想之简单介绍了解
1.AOP原则:解耦,只要解耦就可以用到AOP思想。比如Spring日志管理、事务管理、数据源管理等。
2.AOP(面向切面编程)实际上是OOP(面向对象编程)的延续。
AOP思想:解耦(如下图)
切面:Aspect
连接点:JoinPoint (指某一个切面中具体的某个方法,要在方法真正调用时才存在。通过连接点可以获取方法调用时的状态)
切入点:Pointcut (Spring里面设计的虚拟的,用来描述切面的一个规则。例如表达式execution(*….))
目标对象:Target Object(哪个对象的方法)
代理对象:Proxy Object 自动调用的过程就是由代理对象完成。
通知:advice 相当于监听,由了这个通知才有可能实现自动解耦。
3.Spring AOP的通知类型
前置通知:Before Advice 在调用之前触发
后置通知:After Returning Advice 在获取返回值的时候触发(没有返回值的时候不触发)
异常通知:After Throwing Advice 在出现异常时触发
最终完成通知:After Advice 调用完成时触发
环绕通知:Around Advice 同一个切面上,只要有方法被调用,就会通知。 比如拦截器。
4.Aop思想的应用场景
- 权限 Authent
- 缓存 Cache
- 内容传递 Context Passing
- 错误处理 Error Process
- 延时加载 Lazy Loading
- 调试 Debugging
- 记录跟踪、优化 Logging、Monitor
- 性能优化 performance Optimization
- 持久化 Persistence
- 资源池 Resouce Pool
- 同步、异步管理 Synchroinzed
- 事务管理 Transaction