Spring AOP总结

想再次把Spring AOP相关的知识点及面试可能会问道的问题和回答记录一下。

一,什么是AOP,为什么要用它?

AOP是面向切面编程,可看作面向对象编程很好的补充。它对核心业务逻辑之外的通用操作,如权限验证,日志记录等抽象封装成一个切面对象,从而简化业务逻辑,促进代码复用,提高代码的可维护性和可扩展性。

它的主要引用场景,事务管理,日志记录,权限验证等。

二,Spring AOP的实现原理

在IOC容器基础上扩展,定义目标类bean的代理bean,通过它实现对目标类bean的增强处理操作。具体SpringAOP实现有JDK动态代理和Cglib代理两种方式,默认用JDK动态代理,但它要求目标类必须要实现接口,在目标类没实现接口的情况下使用Cglib代理,它使用继承目标类动态生成子类的方式实现,因此它不能对final修饰的类代理。

AOP切面的核心是定义做什么及什么时候做,对应在Spring中配置一个advisor需要定义引用advice和pointcut。

原文地址:https://www.cnblogs.com/doit8791/p/8551019.html