跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • spring 事务是 jdk 动态代理还是 cglib 字节码织入?
未分類
30 4 月 2020

spring 事务是 jdk 动态代理还是 cglib 字节码织入?

spring 事务是 jdk 动态代理还是 cglib 字节码织入?

資深大佬 : zxc1234 8

如题,请教 还是两者都有,分情况?

大佬有話說 (9)

  • 資深大佬 : chendy

    不需要接口就能用
    那当然是 cglib 了

  • 資深大佬 : ErrorMan

    两种模式都支持,默认实现是 jdk 好像?

  • 資深大佬 : luhe

    https://snailclimb.gitee.io/javaguide-interview/#/./docs/e-1spring

    Spring AOP 就是基于动态代理的,如果要代理的对象,实现了某个接口,那么 Spring AOP 会使用 JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候 Spring AOP 会使用 Cglib

  • 資深大佬 : BBCCBB

    jdk 动态代理和 cglib 都是用来生成代理类..

    里面的 interceptor 执行都是一个责任链的模式..

  • 資深大佬 : nicklooo

    @luhe 补充一点,与 spring-context 不同,SpringBoot 默认都使用 cglib 。默认开启 cglib 的属性应该是 @EnableAspectJAutoProxy 里的 proxyTargetClass 。

  • 資深大佬 : xizismile

    1.spring 默认使用的是 jdk 动态代理
    2.如果要被代理的类没有实现任何接口 或者 配置了 proxyTargetClass 属性为 cglib 代理,才会去使用 cglib 代理

  • 資深大佬 : xizismile

    多说一些,一般这些详细的知识点在 spring 的官方文档里面都有,建议有疑惑的时候先看看官方文档,我上面的回答也是从官方文档里翻译出来的

  • 資深大佬 : Aresxue

    spring5 默认 jdk, spring boot2 默认 cglib

  • 資深大佬 : hantsy

    这些说运行时代理吧,Spring 支持三种 weaving 方式,runtime, loading time, compiling time. AspectJ 可以实现 compiling time weaving, 将代理类什么的,先在编译的时候生成一堆 Classes 。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具