返回顶部
首页 > 资讯 > 精选 >Spring中JDK与CGLIB有什么不同
  • 644
分享到

Spring中JDK与CGLIB有什么不同

springcglibjdk 2023-05-31 17:05:00 644人浏览 安东尼
摘要

spring中jdk与CGLIB有什么不同?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、原理区别:Java动态代理是利用反射机制生成一个实现代理接口的匿名类

springjdk与CGLIB有什么不同?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一、原理区别:

Java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。

而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。

如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现aop

如果目标对象实现了接口,可以强制使用CGLIB实现AOP

如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换

如何强制使用CGLIB实现AOP?

(1)添加CGLIB库,SPRING_HOME/cglib/.jar

(2)在spring配置文件中加入<aop:aspectj-autoproxy proxy-target-class="true"/>

JDK动态代理和CGLIB字节码生成的区别?

(1)JDK动态代理只能对实现了接口的类生成代理,而不能针对类

 (2)CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法

因为是继承,所以该类或方法最好不要声明成final

二、代码实现

package com.fy.spring.proxy;    public interface UserManager {    public void addUser(String id, String passWord);    public void delUser(String id);  }  

--结束END--

本文标题: Spring中JDK与CGLIB有什么不同

本文链接: https://lsjlt.com/news/227119.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Spring中JDK与CGLIB有什么不同
    Spring中JDK与CGLIB有什么不同?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、原理区别:Java动态代理是利用反射机制生成一个实现代理接口的匿名类...
    99+
    2023-05-31
    spring cglib jdk
  • Spring boot和Spring有什么不同
    这篇文章将为大家详细讲解有关Spring boot和Spring有什么不同,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Spring Boot 简介spring框架功能很强大,但是就算是一个...
    99+
    2023-05-31
    spring spring boot spring boo
  • 在Spring Boot中部署jar与war有什么不同
    本篇文章为大家展示了在Spring Boot中部署jar与war有什么不同,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、 packaging的方式不同,一种设置成jar一种是war<pro...
    99+
    2023-05-31
    war springboot jar
  • java 中String.equals与==有什么不同
    本篇文章给大家分享的是有关java 中String.equals与==有什么不同,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 java 中String.equals...
    99+
    2023-05-31
    java string.equals ava
  • python中list与array有什么不同
    python中list与array有什么不同?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发...
    99+
    2023-06-14
  • Java中hashCode()与equals()有什么不同
    这期内容当中小编将会给大家带来有关Java中hashCode()与equals()有什么不同,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。equals()方法equals是Object类提供的方法之一,众...
    99+
    2023-05-31
    java hashcode() equals()
  • Java中Object.equals与String.equals有什么不同
    Java中Object.equals与String.equals有什么不同?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、基础知识Java的存储空间:寄存器、栈、堆、静态...
    99+
    2023-05-31
    java object.equals string.equals
  • Java中的==与equals有什么不同
    这篇文章给大家介绍Java中的==与equals有什么不同,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java中==运算符与equals方法的区别及intern方法详解  ==运算符与equals()方法2...
    99+
    2023-05-31
    java == equals
  • redis与mongodb有什么不同
    今天就跟大家聊聊有关redis与mongodb有什么不同,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MongoDB更类似MySQL,支持字段索引、...
    99+
    2024-04-02
  • html5与html有什么不同
    html5与html有什么不同?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便...
    99+
    2023-06-14
  • vue与bootstrap有什么不同
    这篇文章主要介绍“vue与bootstrap有什么不同”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue与bootstrap有什么不同”文章能帮助大家解决问题。在很多人眼里 bootstrap 和...
    99+
    2023-06-27
  • sleep()与wait()在Java中有什么不同
    sleep()与wait()在Java中有什么不同?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。详解Java中的sleep()和wait()的区别对于sleep()方法,我们首...
    99+
    2023-05-31
    java sleep() wait()
  • init与clinit在Java中有什么不同
    今天就跟大家聊聊有关init与clinit在Java中有什么不同,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。init和clinit区别①init和clinit方法执行时机不同ini...
    99+
    2023-05-31
    java clinit init
  • synchronized与lock在Java中有什么不同
    synchronized与lock在Java中有什么不同?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一.synchronized的缺陷  synchronized是jav...
    99+
    2023-05-31
    java synchronized lock
  • clipToPadding与clipChildren在Android 中有什么不同
    本篇文章给大家分享的是有关clipToPadding与clipChildren在Android 中有什么不同,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.对于clipToP...
    99+
    2023-05-31
    android cliptopadding clipchildren
  • get与post在HTTP中有什么不同
    本篇文章给大家分享的是有关get与post在HTTP中有什么不同,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是G...
    99+
    2023-05-31
    http get post
  • HashSet与TreeSet在Java中有什么不同
    本篇文章给大家分享的是有关HashSet与TreeSet在Java中有什么不同,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. HashSetHashSet有以下特点:不能保...
    99+
    2023-05-31
    java hashset treeset
  • Thread与runnable在java中有什么不同
    Thread与runnable在java中有什么不同 ?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。java中实现多线程的方法有两种:继承Thread类和实现runnable接...
    99+
    2023-05-31
    java thread runnable
  • String与StringBuffer在java 中有什么不同
    本篇文章为大家展示了String与StringBuffer在java 中有什么不同,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. String 类 String的值是不可变的,这就导致每次对St...
    99+
    2023-05-31
    java string stringbuffer
  • Collection与Collections在java中有什么不同
    本篇文章给大家分享的是有关Collection与Collections在java中有什么不同,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.Collection &...
    99+
    2023-05-31
    java collection collections
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作