Spring AOP总结
2023-09-11 14:18:08 时间
想再次把Spring AOP相关的知识点及面试可能会问道的问题和回答记录一下。
一,什么是AOP,为什么要用它?
AOP是面向切面编程,可看作面向对象编程很好的补充。它对核心业务逻辑之外的通用操作,如权限验证,日志记录等抽象封装成一个切面对象,从而简化业务逻辑,促进代码复用,提高代码的可维护性和可扩展性。
它的主要引用场景,事务管理,日志记录,权限验证等。
二,Spring AOP的实现原理
在IOC容器基础上扩展,定义目标类bean的代理bean,通过它实现对目标类bean的增强处理操作。具体SpringAOP实现有JDK动态代理和Cglib代理两种方式,默认用JDK动态代理,但它要求目标类必须要实现接口,在目标类没实现接口的情况下使用Cglib代理,它使用继承目标类动态生成子类的方式实现,因此它不能对final修饰的类代理。
AOP切面的核心是定义做什么及什么时候做,对应在Spring中配置一个advisor需要定义引用advice和pointcut。
相关文章
- Spring基础-07(Spring05-07:AOP)
- spring学习笔记(7)AOP前夕[2]CGLib动态代理实例解析
- Spring之AOP一
- 【Spring AOP】Spring AOP之你必须知道的AOP相关概念(1)
- ssh(Spring+Spring mvc+hibernate)——showEmp.jsp
- spring AOP编程
- Spring AOP源码分析(一)AOP介绍和aspectj、SpringAOP入门
- spring 学习2-Spring Configuration in detail
- Spring Boot 负载均衡之外置session状态保存
- 跟我学SpringCloud | 第十二篇:Spring Cloud Gateway初探
- 谈谈Spring中的IOC和AOP概念
- Spring AOP底层实现原理
- Spring AOP编程-aspectJ注解开发(@Pointcut声明切点)
- Spring读源码系列之AOP--07---aop自动代理创建器(拿下AOP的最后一击)
- Spring读源码系列之AOP--06---AopProxy===>spring使用jdk和cglib生成代理对象的终极奥义
- Spring读源码系列之AOP--05---aop常用工具类学习
- Spring读源码系列之AOP--03---aop底层基础类学习
- Spring读源码系列之AOP--09---aop源码流程一把拿下
- Spring 中基于 AOP 的 XML操作方式
- Spring管理的bean初始化方法的三种方式,以及@PostConstruct不起作用的原因
- spring aop 中@annotation()和自定义注解的使用
- spring多个AOP执行先后顺序(面试问题:怎么控制多个aop的执行循序)
- Spring之AOP源码理解,Spring4.3.12.RELEASE版本
- 017-Spring Boot AOP
- Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。
- Spring使用AspectJ开发AOP:基于XML和基于Annotation
- [spring学习]11、AOP使用,注解&xml配置