Spring3 集成 Hibernate4事务
注意事项
<!-- 5. 配置事务管理器 注意是,hibernate4,配置成hibernate3报错 -->
<bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" > <!-- 1. 配置datasource --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!-- 指定连接数据库的驱动 --> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <!-- 指定连接数据库的URL --> <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/hibernate?useunicode=true&characterEncoding=utf8"/> <!-- 指定连接数据库的用户名 --> <property name="user" value="root"/> <!-- 指定连接数据库的密码 --> <property name="password" value="root"/> <!-- 指定连接数据库连接池的最大连接数 --> <property name="maxPoolSize" value="40"/> <!-- 指定连接数据库连接池的最小连接数 --> <property name="minPoolSize" value="1"/> <!-- 指定连接数据库连接池的初始化连接数 --> <property name="initialPoolSize" value="1"/> <!-- 指定连接数据库连接池的连接的最大空闲时间 --> <property name="maxIdleTime" value="20"/> </bean> <!-- 2. 配置sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <!--dataSource属性指定要用到的连接池--> <property name="dataSource" ref="dataSource"/> <!--指定要用到的实体映射文件--> <property name="mappingResources"> <list> <value>com/test/hibernate/mapping/News.hbm.xml</value> </list> </property> <!--配置Hibernate的属性--> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect hibernate.hbm2ddl.auto=update hibernate.show_sql=true hibernate.format_sql=true hibernate.temp.use_jdbc_metadata_defaults=false </value> </property> </bean> <!-- 配置HibernateTemplate, hibernate4里已经舍弃了HibernateTemplate,这个配置不需要了, 直接注入 sessionFactory到Dao组件 在hibernate4里已经舍弃了HibernateTemplate,因为在hibernate4里的事务已经完全可以实现事务了 由于hibernate4已经完全可以实现事务了 与spring3.1中的hibernatedao,hibernateTemplete等有冲突, 所以spring3.1里已经不提供hibernatedaosupport,hibernateTemplete了, 只能用hibernate原始的方式用session <bean id="hibernateTemplete" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> --> <!-- 3. 配置Dao层 Bean,该Dao继承自HibernateDaoSupport,需要注入HibernateTemplate --> <bean id="newsDao" class="test.hibernate.pojo.dao.NewsDao"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 4. 配置business业务逻辑层Bean,需要注入Dao层Bean --> <bean id="newsBusiness" class="test.hibernate.business.NewsBusiness"> <property name="newsDao" ref="newsDao"></property> </bean> <!-- 5. 配置事务管理器 注意是,hibernate4,配置成hibernate3报错 --> <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!--6. 事务配置,主要是使用的transaction-manager不一样 配置增强处理的bean(相当于切面类),也是Spring自动生成普通 业务逻辑bean(targetBean)的代理Bean.里面的tx:method配置每个方法的事务属性, name配置方法名,可使用通配符. --> <tx:advice id="txJpaAdvice" transaction-manager="txManager"> <!-- 配置详细的事务语义 --> <tx:attributes> <!-- 表示get开头的方法是只读的 --> <tx:method name="get*" read-only="true" propagation="REQUIRED"/> <!-- 其他方法使用默认的事务设置 --> <tx:method name="*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <!-- 全局事务切面配置,AOP元素配置 --> <aop:config> <!-- 配置一个切入点 test.hibernate.business包下面所有类的所有方法,都会被加入事务 --> <aop:pointcut id="myJpaPoint" expression="execution(* test.hibernate.business.*.*(..))" /> <!-- 配置 (事务代理)切入点(aop:pointcut) 和 切面类(tx:advice),将二者关联起来 --> <aop:advisor advice-ref="txJpaAdvice" pointcut-ref="myJpaPoint" /> </aop:config> </beans>
相关推荐
这篇博客“Spring之Spring2.5集成Hibernate3.6”主要探讨了如何将两个经典的开源框架——Spring 2.5和Hibernate 3.6进行整合,以实现数据持久化的高效管理。 Spring 2.5版本是Spring框架的一个重要里程碑,它引入了...
总之,Spring 4集成Hibernate 3的XML配置方式涉及多个层面,包括数据库连接、SessionFactory、事务管理、数据访问对象等。这种集成方式虽然相比使用Java配置显得更为繁琐,但在某些场景下,它提供了更好的可读性和可...
**Spring与Hibernate集成详解** 在Java企业级应用开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全方位的轻量级应用框架,提供了强大的依赖注入、AOP(面向切面编程)以及各种服务管理功能。而...
3. Spring4对Hibernate4的事务管理支持 4. 使用JUnit进行测试驱动开发 5. Eclipse集成开发环境的使用 理解并掌握这些知识点,对于任何Java后端开发者来说都至关重要,因为它们构成了现代企业级应用的基础架构。通过...
4. **DAO支持**:Spring提供了对DAO的支持,可以方便地集成Hibernate DAO实现。 #### 三、示例代码解析 下面基于提供的代码片段,详细分析Spring2 Hibernate3集成的关键点。 ##### 1. UserDAO接口定义 ```java ...
在本项目"SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip"中,开发者使用了SpringMVC4作为表现层,Spring4作为控制层和服务层,Hibernate4作为持久层,c3p0作为数据库连接池,以及MySQL作为数据库。...
4. **集成Hibernate**:配置Hibernate的SessionFactory,并将其注入到业务层的DAO(数据访问对象)中,用于数据库操作。 在项目实践中,`bankmoney`可能代表了一个银行资金管理的模块,可能包含相关的DAO、Service...
本篇文章将重点讨论如何在Spring框架中集成Hibernate,并探讨编程式事务管理和Spring AOP的声明式事务。 首先,让我们理解Spring与Hibernate的集成。为了整合这两个库,你需要在Spring配置文件中定义Hibernate的...
本实例工程展示了如何在Spring 3和Hibernate 4中使用注解进行声明式事务管理,这是一种高效且易于维护的方法。接下来,我们将详细讨论相关知识点。 1. **Spring框架**:Spring是一个全面的后端开发框架,它提供了...
Hibernate本身也支持事务管理,但通常与Spring集成时,我们使用Spring的事务管理。`HibernateTransactionManager`是Spring提供的专门用于管理Hibernate事务的类,它会自动处理Hibernate Session和JDBC Connection的...
这个压缩包文件“spring4-hibernate3-demo”很可能是包含了一个示例项目的源代码,用于演示这种集成。 首先,我们需要理解Spring 4和Hibernate 3的基本概念。Spring是一个全面的开源应用框架,它提供了依赖注入、...
Spring集成JPA(Java Persistence API)是将Spring框架与ORM(Object-Relational Mapping)解决方案之一的Hibernate结合使用的常见实践。这个例子展示了如何在Spring应用中配置和使用JPA,以便利用Hibernate作为JPA...
在集成Hibernate4时,需要的jar包包括: 1. hibernate-entitymanager.jar:实体管理功能,支持JPA规范。 2. hibernate-core.jar:Hibernate的核心库,包括查询语言HQL和Criteria API。 3. hibernate-validator.jar:...
Spring3还集成了Hibernate4,使得ORM(对象关系映射)变得更加简单。在本示例中,Spring可能通过配置文件或注解来管理Bean,同时使用它的事务管理器来处理数据库事务。 Hibernate4是持久层框架,它实现了ORM,将...
在本文中,我们将深入探讨如何将Spring Boot与Hibernate集成,并使用Druid作为数据库连接池。首先,我们需要理解这三个核心组件: 1. **Spring Boot**: 是一个由Pivotal团队提供的开源框架,它简化了创建独立的、...
在Spring4+Hibernate4+SpringMvc的集成项目中,通常会使用Spring的DataSource来配置数据源,然后通过SessionFactory和Session接口进行数据库操作。Hibernate的实体类会通过注解或配置文件与数据库表关联。SpringMvc...
在Java企业级开发中,...不过,上述列出的jar包是Spring集成Hibernate的基本配置,能够确保基本的CRUD操作和事务管理功能正常运行。正确地引入和配置这些jar包,可以有效地提升Java企业应用的开发效率和可维护性。
在整合Struts2、Spring3和Hibernate4时,通常会利用Spring的AOP功能来实现事务管理,保证数据操作的一致性。Struts2的Action可以通过Spring的依赖注入获取到Spring管理的服务层对象,从而调用业务方法。此外,...