Spring AOP

166 阅读1分钟

面向切面编程

什么是面向切面编程,面向切面编程是一种编程范式,不是编程语言,用于解决特定问题与OOP互补。 解决代码重复,关注点分离,切面分离,将业务功能需求与非功能需求进行分离。 使用场景:权限控制 缓存控制 事务控制 审计日志 性能监控 分布式追踪

Spring AOP使用详解

Spring AOP主要是两个部分:在什么地方进行拦截,在什么时候进行拦截;包括Pointcut express、5种Advice

Spring AOP实现原理

主要涉及两个部分,一是设计使用代理模式与责任链模式 二是实现通过JDK实现与Cglib实现 JDK实现要点: 类:java.lang.reflect.Proxy 接口:InvocationHandler 只能基于接口进行动态代理 JDK与Cglib代理对比: JDK只能针对有接口类的接口方法进行动态代理 Cglib基于继承来实现代理,无法对static、final类进行代理 Cglib基于继承来实现代理,无法对private、static方法进行代理 如果有多个AOP叠加,此时使用责任链模式来进行处理