A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  今天为大家分享的是Java动态代理和cglib动态代理的区别,做Java的同学可以点击收藏了,满满的干货

  一、原理差异:
  java动态代理是运用反射机制生成一个完成署理接口的匿名类,在调用具体办法前调用InvokeHandler来处理。
  而cglib动态代理是运用asm开源包,对署理方针类的class文件加载进来,通过修正其字节码生成子类来处理。
  1、如果方针方针完成了接口,默许情况下会选用JDK的动态署理完成AOP
  2、如果方针方针完成了接口,能够强制运用CGLIB完成AOP
  3、如果方针方针没有完成了接口,有必要选用CGLIB库,spring会主动在JDK动态署理和CGLIB之间转换
  怎么强制运用CGLIB完成AOP?
  (1)增加CGLIB库,SPRING_HOME/cglib/*.jar
  (2)在spring配置文件中参加
  JDK动态署理和CGLIB字节码生成的差异?
  (1)JDK动态署理只能对完成了接口的类生成署理,而不能针对类
  (2)CGLIB是针对类完成署理,主要是对指定的类生成一个子类,覆盖其间的办法
  因为是继承,所以该类或办法最好不要声明成final
传智Java培训拥有6大课程优势——
①独有的一站式IT职业教育体系,让学员通过6个月的线下学习实现高起点就业, 12个月的线上在职进阶课实现升职加薪,大幅提升学员的职场晋升速度。
②60+套技术解决方案,覆盖职场常见开发问题,让学员就业后快速上手开发难题,轻松成为核心员工。
③超大项目库,覆盖7大就业主流热门行业,让学员边学习边积累项目开发经验。
④超千人投入的3大课程研发库,每年耗资千万打造领先行业的优质课程。
⑤传智&华为课程共建,持续为课程输出前沿技术。
⑥120+超强师资团队,多为总监、架构师出身,除了专业技能,还为你规划适合你的职业发展路线。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马