序言:
可能大家在日常开发中经常听到AOP这个词语,与之相关的是Spring的AOP,接下来我将详细的介绍一下AOP,先介绍AOP里面的常用概念,再介绍Spring的编程式的AOP,以及利用Spring的fatoryBean特性和Spring是如何集成AspectJ的。
相信大家跟我一样,当谈及到AOP的时候,可能脑子里面想到便是一些AOP的常用术语,再这里,我建议大家先摒弃Spring AOP的知识,因为springAOP只是实现了AOP,AOP其实是一种编程思想,那么我们就正式的进入到介绍AOP的常用概念。
AOP概念:
切面:笼统的来讲,就是我们即将对其进行功能增强的一个整体。
切入点:我们真正进行功能增强的地方。
通知:增强的功能.。
编织:将通知嵌入到切点中。
代理:分为静态代理,动态代理(JDK代理(基于接口),Cglib代理(基于实现类)),实现AOP的一种机制
引入:就是我们对接口进行代理新增的方法。
AOP应用场景:
日志记录,事务控制,权限控制,数据埋点等。
那么我们废话不多说,直接进入到AOP的主题:Spring是如何实现AOP的。
Spring-AOP的基础类:
Advised(Interface):定义了常用方法接口
ProxyConfig:提供了一些基础配置(配置是否透明,是否最优,是否暴露代理对象,是否前置过