相比面试过程当中Spring是必问的吧,而Spring中Aop又是必须的,简单的说就是谈谈本身对aop的理解,知道aop不,咱们也都知道aop即面向切面编程,但具体点呢?面试
AOP,即面向切面编程,是对面向对象编程的一个补充,它能够在不影响源代码的状况下对其进行加强,好比:日志,事务,权限控制等。Spring AOP是基于动态代理实现的,在不一样的情景中,有两种动态代理能够选择,即JDK动态代理和Cglib动态代理,Spring Aop的默认策略是,代理接口的时候采用JDK动态代理,其余使用Cglib;JDK动态代理是根据传入的类加载器,接口和handler来构建一个新的代理类,代理类继承Proxy类,并实现传入的接口,在代理对象调用接口方法时,会被转发到handler中,而后经过反射来执行被代理类的方法;Cglib是经过继承被代理类实现的,经过构建字节码来构建代理类,在转发到interceptor方法中时,经过FastClass机制来执行被代理类的方法。编程
有关动态代理,看我下一篇博客。代理