什么是AOP
面试中经常被问到什么是AOP,其实AOP是一种技术实现,或者说是一种实现标准,实现AOP的技术有多种,但是通常所说的AOP,大家会不自觉的想到spring aop,因为spring aop被问了很多次。本文想从源码的执行流程上来简单说说AOP的实现原理。
AOP底层技术实现
aop的底层技术其实就是大家熟知的代理,spring aop中的代理主要有两种,cglib代理和JDK动态代理,这两种代理的使用场景有所不同,如果被代理的类实现了接口,就使用JDK动态代理,否则就是cglib代理,当然这是默认情况下,否则可以通过修改相关的参数强制使用cglib代理
简单代码实现
下面先通过一个简单的案例来体验一下aop的实现,代码比较简单,下面直接贴出来:
1、MainConfig ,全局扫描类
@ComponentScan("com.congge.stu2")
@EnableAspectJAutoProxy
public class MainConfig {
}
2、StudentService,被spring扫描的类
@Component
public class StudentService{
public void queryStudent() {
System.out.println("执行查询");
}
}
3、AOP配置类