在Hibernate3.3版本中,使用的字节码增强包默认是javassist了。而在3.2.6中默认使用的是cglib。要在3.3中更换为cglib,需要进行如下操作:
1. 在classpath下,添加hibernate.properties文件,并添加如下一行
hibernate.bytecode.provider=cglib
这行属性配置就是指定字节码生成包使用cglib。注意:
1) 一定要写成key=value形式,我按照Hibernate下载包中提供properties样板文件写成了hibernate.bytecode.provider cglib,死活不行。
2) 不能通过在hibernate.cfg.xml文件中配置:<property name="hibernate.bytecode.provider">cglib</property>来更换,一定要在hibernate.properties中配置才起效。
2. 添加cglib.jar到classpath中。Hibernate下载包中提供了cglib2.2.jar,但还需要添加cglib包依赖的asm3.1包。所以,干脆上cglib官网下载cglib-nodep-2.2.jar
完成以上两个步骤后,就把字节码生成包更换为cglib了。
分享到:
相关推荐
在Hibernate3.3版本中,它提供了丰富的功能和改进,包括对象-关系映射(ORM)、查询语言(HQL)以及 Criteria API 等。 这个压缩包"hibernate3.3必要的jar包"包含了配置和运行Hibernate 3.3项目所必需的库文件。...
在Hibernate中,JTA可以帮助处理跨越多个数据库操作的事务管理。 3. **JPA (Java Persistence API)**: 虽然Hibernate主要以其自己的API闻名,但它也支持JPA规范,允许开发者使用标准的JPA注解进行持久化操作。 4. ...
在Hibernate中,它用于动态生成代理类和增强已有类的功能,比如在运行时添加方法或修改类结构,以支持懒加载、缓存策略等。 **antlr-2.7.6.jar** 是ANTLR(ANother Tool for Language Recognition)的Java库,是一...
在Java中,我们可以使用JDK自带的动态代理或者第三方库如CGLIB、Javassist、ASM来实现。 **JDK动态代理**: JDK的动态代理主要依赖于`java.lang.reflect.Proxy`和`java.lang.reflect.InvocationHandler`两个类。...
【标题】"jsr168 portlet"是基于Java标准JSR168实现的portlet应用,它结合了Struts2、Spring2.5和Hibernate3.3这三大流行框架,以构建可复用、模块化的Web应用程序。JSR168(Portlet API 1.0)为portlet开发提供了...
动态代理在Java编程中是一种非常重要的技术,它允许我们在运行时创建对象的代理,从而可以在不修改原有代码的情况下,为对象添加额外的功能。本压缩包包含关于三种主要的动态代理实现方式:JDK动态代理、CGLIB以及...
在Hibernate中,当无法使用Javassist时,CGLIB作为备选方案。 8. **jboss-cache-1.4.1.GA.jar**:JBoss Cache是一个分布式缓存解决方案,它被Hibernate用作二级缓存机制,以提高数据访问性能。 9. **jboss-logging...
它主要通过ASM库在运行期动态生成新的类和方法,广泛应用于许多框架和库中,如Spring AOP、Hibernate等,以提供对目标类的增强或代理功能。 1. **CGLib的工作原理** CGLib的核心是基于ASM库来生成和操作字节码。当...
例如,使用 writeFile() 方法可以将 CtClass 对象转化为类文件并写入磁盘中。使用 toBytecode() 方法可以将 CtClass 对象转化为字节码数组。使用 toClass() 方法可以将 CtClass 对象加载到 JVM 中。 四、定义新类 ...
- `hibernate-cglib-repack-2.1_3.jar`:Hibernate使用的代码生成库,用于生成代理类,是Hibernate对无接口类进行动态代理所必需的。 这些库共同构成了SSH整合包的基础,开发者可以利用它们快速构建和部署功能丰富...
这个"javassistDemo.zip"的示例可能涵盖了这些基本操作,并提供了具体的代码示例,帮助开发者理解如何在实际项目中应用Javaassist。 在实际使用Javaassist时,需要注意几个关键点: - 类的修改必须在类加载到JVM...
在Hibernate中,Javaassist用于动态生成和修改Java类的字节码,以实现如懒加载、CGLIB代理等特性。例如,当Hibernate需要为实体类生成代理以实现延迟加载时,Javaassist就发挥了作用。通过修改类的字节码,Hibernate...
使用javassist修改class文件.pdf
在"压缩包子文件的文件名称列表"中,虽然没有具体的文件名,但在一个标准的Hibernate 3.3发行版中,我们可以期待找到以下关键文件: 1. `hibernate3.jar`:这是Hibernate的核心库,包含了所有必要的类和接口。 2. `...
让我们深入探讨一下这些jar包以及它们在Hibernate中的作用。 1. **hibernate3.jar**:这是Hibernate的核心库,包含了许多核心接口和实现,如SessionFactory、Session、Query等。这个jar包提供了实体管理、事务处理...
总的来说,这个压缩文件为使用Hibernate提供了必要的依赖,使得Java开发者能够更专注于业务逻辑,而不是繁琐的数据库交互。在理解和掌握这些知识点后,你可以快速地搭建起一个基于Hibernate的Java应用,并享受ORM...
3. **javassist.jar**:Hibernate使用javassist库动态生成和修改类的字节码,以便在运行时实现类的代理和CGLIB。 4. **cglib-nodep.jar**:Class Generative Library,提供了一个API,用于在运行时创建新的Java类和...
赠送jar包:javassist-3.23.1-GA.jar; 赠送原API文档:javassist-3.23.1-GA-javadoc.jar; 赠送源代码:javassist-3.23.1-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
它是整个Hibernate的核心,一旦创建,就可以在整个应用中重复使用。 3. **Session**: Session是与数据库交互的主要接口,提供了事务管理、持久化对象的CRUD操作(创建、读取、更新、删除)以及查询服务。 4. **...
在Java应用程序中,Hibernate提供了一种抽象层,允许开发者使用面向对象的编程方式来处理数据库交互,而无需直接编写SQL语句。这个压缩包"hibernate-distribution-3.6.0.Final"包含了运行和开发基于Hibernate的应用...