【Spring AOP底层实现原理】

简介: 【Spring AOP底层实现原理】

Spring AOP底层实现原理

Spring AOP底层实现原理就是在运行时动态生成代理对象,通过代理链实现对目标对象的方法拦截。

初始化时会看目标类有没有实现InvocationHandler接口或者是Proxy类,如果实现了接口,就使用JDK动态代理,通过反射来接收被代理的类。

如果没实现就利用cglib进行AOP动态代理,CGLIB是通过继承的方式做的动态代理,是一个代码生成的类库,可以在运行时动态的生成某个类的子类,将目标对象转变为代理对象对事务进行操作。所以在初始化的时候,已经将目标对象进行代理,放入到spring 容器中。

CGLIB是基于ASM开发的一个字节码生成库,通过生成目标类的子类来实现AOP、动态代理等功能。而ASM是一个独立的字节码操作工具包。Spring的AOP的应用场景一般在日志记录、权限验证、事务管理等业务场景。

它是运行期进行织入,生成字节码,再加载到虚拟机中。


相关文章
|
2天前
|
XML Java 数据格式
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
7 1
|
3天前
|
前端开发 Java 数据库
浅谈Spring AOP 面向切面编程 最通俗易懂的画图理解AOP、AOP通知执行顺序~
浅谈Spring AOP 面向切面编程 最通俗易懂的画图理解AOP、AOP通知执行顺序~
|
3天前
|
XML Java 数据格式
技术好文:Spring基础篇——AOP切面编程
技术好文:Spring基础篇——AOP切面编程
|
2天前
|
Java 开发者 Spring
使用Spring Boot AOP实现日志记录
使用Spring Boot AOP实现日志记录
|
2天前
|
XML Java 数据格式
Spring5系列学习文章分享---第三篇(AOP概念+原理+动态代理+术语+Aspect+操作案例(注解与配置方式))
Spring5系列学习文章分享---第三篇(AOP概念+原理+动态代理+术语+Aspect+操作案例(注解与配置方式))
5 0
|
3天前
|
开发框架 Java 开发者
Spring Boot中的自动装配原理
Spring Boot中的自动装配原理
|
3天前
|
XML Java API
经验大分享:Spring实现AOP的三种方式
经验大分享:Spring实现AOP的三种方式
|
3天前
|
XML Java API
经验大分享:Spring实现AOP的三种方式
经验大分享:Spring实现AOP的三种方式
|
6天前
|
Java
springboot自定义拦截器,校验token
springboot自定义拦截器,校验token
20 6
|
4天前
|
Java 数据库连接 数据库
Spring Boot 集成 MyBatis-Plus 总结
Spring Boot 集成 MyBatis-Plus 总结