什么是AOP
AOP(Aspect Oriented Programming),面向切面编程,是Spring的重要组成部分。AOP是一种思想,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
为什么要用AOP
使用AOP,其实就是方便地实现了代理模式。使用代理模式可以使程序变得易于扩展,通过访问代理对象而不是目标对象,来实现对目标对象的扩展。不用AOP,也可以自己在项目中实现代理模式,不过没有这个必要,使用人家写好的,用人家的API就可以方便轻松地实现代理模式。
AOP的底层
AOP其实就是代理模式,不过把代理模式封装变得通用好用罢了。AOP底层使用动态代理,与代理模式差不多,有两种代理方法,一个是在类有实现接口的情况下,使用JDK代理,另一个在类没有实现接口的情况下,就使用Cglib代理(子类代理)。Spring使用AspectJ来实现AOP操作,利用aspect这个jar包,可以方便第实现切入。