0 0

spring ,hibernate 都是用到了asm字节码技术,请问它们具体都拿ASM来实现了什么功能?或者说在哪个功能上用到的5

      spring ,hibernate 都是用到了asm字节码技术,请问它们具体都拿ASM来实现了什么功能?或者说在哪个功能上用到的
 
    我们查看Spring,主要使用了cglib动态代理来实现一些IOC或者AOP功能,但是这个和ASM好像是没关系?还有hibernate,在做数据持久化的时候主要用的是反射,那它有拿ASM干了什么呢?
2015年1月16日 17:00

3个答案 按时间排序 按投票排序

0 0

采纳的答案

动态代理,hibernate的懒加载使用到了asm,spring的AOP也使用到了。

你建立一个hibernate映射对象并使用懒加载配置的时候,在内存中生成的对象使用的不再是你实现的那个类了,而是hibernate根据字节码技术已你的类为模板构造的一个新类,证明就是当你获得那个对象输出类名是,不是你自己生成的类名了。spring可能是proxy$xxx,hibernate可能是<你的类名>$xxx$xxx之类的名字。

2015年1月21日 13:42
0 0

CGLIB是对ASM的封装,简化了ASM的操作,降低了ASM的使用门槛

2015年1月22日 15:31
0 0

asm字节码增强技术主要是用来反射的时候提升性能的,如果单纯用jdk的反射调用,性能是非常低下的,而使用字节码增强技术后反射调用的时间已经基本可以与直接调用相当了

2015年1月16日 18:48

相关推荐

    cglib和asm

    总的来说,CGlib和ASM是Java开发中的重要工具,它们通过字节码操作提供了一种强大的方式来扩展和修改Java程序,使得开发者可以在运行时实现各种灵活的编程模式。了解并熟练掌握这两个库,对于提升Java开发效率和实现...

    cglib-2.2.jar asm-tree.jar asm-commons.jar asm.jar

    【标题】"cglib-2.2.jar asm-tree.jar asm-commons.jar asm.jar" 提供的是一组用于Java编程的库,它们主要用于实现动态代理和字节码操作。 【描述】"cglib动态代理模式jar包 cglib-2.2.jar asm-tree.jar asm-...

    spring-struts1-strust2-hibernate 核心包介绍

    spring.jar 是包含有完整发布的单个jar包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类...

    cglib,字节码生成库是生成和转换Java字节码的高级API。它被aop、测试、数据访问框架用来生成动态代理对象和拦截字段访问。.zip

    CGlib的主要作用是通过字节码技术动态地生成新的类或对象,这些类通常作为代理来使用,用于实现动态代理、方法拦截、以及为不支持接口的类提供AOP能力。 **字节码生成** 在Java中,每个类在运行时都会被JVM(Java...

    struts2 spring hibernate 整合

    【SSH整合】指的是Struts2、Spring和Hibernate这三个开源框架的集成应用,它们在JavaEE企业级开发中占据着重要地位。Struts2是一个MVC框架,负责处理用户请求和控制应用程序流程;Spring是一个全面的后端解决方案,...

    cglib.jar | asm.jar对应版本

    其中,`cglib.jar` 和 `asm.jar` 是实现Java动态代理的两个关键库,它们在许多框架和库中都有广泛的应用,比如Spring AOP和Hibernate。 `cglib.jar` 是一个强大的代码生成库,全称为Code Generation Library。它...

    asm-7.1.zip

    ASM 可以直接生成和分析Java虚拟机(JVM)的字节码,因此在很多领域都有广泛的应用,比如Java代理、AOP(面向切面编程)、代码生成以及动态语言的实现等。 标题中的“asm-7.1.zip”表明这是一个包含ASM库的压缩文件...

    hibernate所有用到的jar包

    9. **asm-*.jar**:ASM是一个底层的Java字节码操控和分析框架,可能被Hibernate用作替代javassist的另一种字节码生成方式。 10. **slf4j-api.jar**和相应的实现库(如slf4j-log4j12.jar):Simple Logging Facade ...

    asm-2.2.3.jar,asm-commons-2.2.3.jar,asm-util-2.2.3.jar

    在Java开发中,当我们需要在运行时生成或者修改类的行为时,ASM提供了一个底层的API来实现这些功能。 标题提到的三个文件是ASM库的特定版本,即ASM 2.2.3的三个不同模块: 1. **asm-2.2.3.jar**:这是ASM框架的...

    spring+hibernate整合需要的一些包

    2. **ASM**:ASM是一个Java字节码操控和分析框架,可以用来动态生成类或者增强已有类的功能。CGLIB内部就使用了ASM来生成和修改字节码。ASM提供了一种低级别的访问,使得开发者能够深入理解Java类的结构,并对其进行...

    SSH(Spring+Hibernate+Struts2)框架整合必须的85个jar包

    SSH框架整合是Java Web开发中常见的一种技术栈,由Spring、Hibernate和Struts2三个开源框架组合而成。这个组合提供了一种高效、灵活且可扩展的解决方案,用于构建企业级的Web应用程序。以下是对SSH框架整合及其中...

    Cglib和asm的jar包

    4. **框架实现**:一些Java框架,如ByteBuddy和CGLib,都是基于ASM来实现字节码操作的。 **Cglib与ASM的关系** 虽然Cglib可以独立工作,但它内部使用了ASM库来进行底层的字节码操作。Cglib为开发者提供了更高级别的...

    ASM-all 6.2

    8. **使用示例**:在实际使用中,ASM常被用作其他框架和库的底层工具,比如Spring AOP、Hibernate和Google的Guice等,它们都利用ASM来实现动态代理和增强功能。 9. **文档和社区支持**:ASM提供详尽的API文档和用户...

    asm-all&&cglib

    总结来说,ASM-all和CGlib都是Java开发中的重要工具,它们允许开发者在运行时动态地生成和修改类,这对于实现诸如动态代理、AOP、元编程等功能非常有用。了解和掌握这两个库的使用,能极大地提升Java开发者的技能...

    struts2-hibernate3-spring整合需要的全部jar包

    它们各自负责不同的职责:Struts2用于控制应用程序的流程,Hibernate3则是优秀的对象关系映射(ORM)框架,Spring则提供全面的依赖注入(DI)和面向切面编程(AOP)功能,以及事务管理等企业级服务。将这三个框架...

    cglib-3.3.0.jar,asm-7.0.jar

    CGLIB通过字节码技术为Java类库提供了一种扩展机制,可以在运行时创建新的类或者增强已有类的功能。在没有接口的情况下,CGLIB可以作为JDK动态代理的替代方案。CGLIB的工作原理是:它创建一个目标类的子类,并在子类...

    Asm和cglibjar包

    总结来说,Asm和CGLIB是Java开发中的重要工具,它们提供了对字节码的操纵能力,使得我们可以实现诸如动态代理、AOP等高级编程模式。而MyBatis这样的框架则巧妙地利用了这些库,为开发者提供了方便的数据持久化解决...

    cglib.jar和cglib代理必备的asm所有jar

    总的来说,Cglib和ASM是Java开发中的利器,它们为我们提供了动态生成和修改字节码的能力,使得我们可以实现一些在编译时无法完成的功能,增强了代码的灵活性和可扩展性。对于想要深入理解Java运行机制以及提升开发...

    代码生成工具asm-3.2

    5. **框架开发**:例如Spring AOP和Hibernate ORM等框架,利用ASM进行字节码增强,实现AOP切面和对象关系映射。 **API结构** ASM的API主要分为两大类:访问者(Visitor)和适配器(Adapter)。访问者模式用于遍历和...

    cglib.jar 和asm.jar

    在Java开发中,如果你遇到无法直接通过接口实现的动态代理需求,或者需要对字节码进行深度操作,CGlib和ASM都是值得考虑的工具。不过,需要注意的是,由于这些库涉及到Java虚拟机的底层操作,因此使用它们可能会带来...

Global site tag (gtag.js) - Google Analytics