Spring AOP实现原理和常见代理的区别

Spring AOP的面向切面编程,是面向对象编程的一种补充,用于处理系统中分布的各个模块的横切关注点,比如说事务管理、日志、缓存等。它是使用动态代理实现的,在内存中临时为方法生成一个AOP对象,这个对象包含目标对象的所有方法,在特定的切点做了增强处理,并回调原来的方法。

Spring AOP的动态代理主要有两种方式实现,JDK动态代理和cglib动态代理。JDK动态代理通过反射来接收被代理的类,但是被代理的类必须实现接口,核心是InvocationHandler和Proxy类。cglib动态代理的类一般是没有实现接口的类,cglib是一个代码生成的类库,可以在运行时动态生成某个类的子类,所以,CGLIB是通过继承的方式做的动态代理,因此如果某个类被标记为final,那么它是无法使用CGLIB做动态代理的。

猜你喜欢:

Spring Boot如何实现微服务?

Spring Cloud是什么?怎么理解Spring Cloud?

怎么配置Spring容器中的Bean?

Spring Boot框架和传统Spring框架相比有哪些优势?

课程

课程获取【Java视频教程+资料】加播妞1605146928606_课程资料.jpg:435946716。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/253736.html

(0)
上一篇 2022年5月8日
下一篇 2022年5月8日

相关推荐

发表回复

登录后才能评论