`

Spring3 集成 Hibernate4事务

 
阅读更多

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&amp;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之Spring2.5集成Hibernate3.6”主要探讨了如何将两个经典的开源框架——Spring 2.5和Hibernate 3.6进行整合,以实现数据持久化的高效管理。 Spring 2.5版本是Spring框架的一个重要里程碑,它引入了...

    spring4集成hibernate3:xml方式

    总之,Spring 4集成Hibernate 3的XML配置方式涉及多个层面,包括数据库连接、SessionFactory、事务管理、数据访问对象等。这种集成方式虽然相比使用Java配置显得更为繁琐,但在某些场景下,它提供了更好的可读性和可...

    Spring与Hibernate集成

    **Spring与Hibernate集成详解** 在Java企业级应用开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全方位的轻量级应用框架,提供了强大的依赖注入、AOP(面向切面编程)以及各种服务管理功能。而...

    spring4+hibernate4整合例子

    3. Spring4对Hibernate4的事务管理支持 4. 使用JUnit进行测试驱动开发 5. Eclipse集成开发环境的使用 理解并掌握这些知识点,对于任何Java后端开发者来说都至关重要,因为它们构成了现代企业级应用的基础架构。通过...

    Spring2 Hibernate3集成

    4. **DAO支持**:Spring提供了对DAO的支持,可以方便地集成Hibernate DAO实现。 #### 三、示例代码解析 下面基于提供的代码片段,详细分析Spring2 Hibernate3集成的关键点。 ##### 1. UserDAO接口定义 ```java ...

    SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip

    在本项目"SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip"中,开发者使用了SpringMVC4作为表现层,Spring4作为控制层和服务层,Hibernate4作为持久层,c3p0作为数据库连接池,以及MySQL作为数据库。...

    声明式事务控制spring+hibernate集成

    4. **集成Hibernate**:配置Hibernate的SessionFactory,并将其注入到业务层的DAO(数据访问对象)中,用于数据库操作。 在项目实践中,`bankmoney`可能代表了一个银行资金管理的模块,可能包含相关的DAO、Service...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    本篇文章将重点讨论如何在Spring框架中集成Hibernate,并探讨编程式事务管理和Spring AOP的声明式事务。 首先,让我们理解Spring与Hibernate的集成。为了整合这两个库,你需要在Spring配置文件中定义Hibernate的...

    spring3+hibernate4配置声明式事务管理(annotation方式)

    本实例工程展示了如何在Spring 3和Hibernate 4中使用注解进行声明式事务管理,这是一种高效且易于维护的方法。接下来,我们将详细讨论相关知识点。 1. **Spring框架**:Spring是一个全面的后端开发框架,它提供了...

    spring3、 hibernate4 配置声明式事务管理(annotation方式)

    Hibernate本身也支持事务管理,但通常与Spring集成时,我们使用Spring的事务管理。`HibernateTransactionManager`是Spring提供的专门用于管理Hibernate事务的类,它会自动处理Hibernate Session和JDBC Connection的...

    spring4配置hibernate3

    这个压缩包文件“spring4-hibernate3-demo”很可能是包含了一个示例项目的源代码,用于演示这种集成。 首先,我们需要理解Spring 4和Hibernate 3的基本概念。Spring是一个全面的开源应用框架,它提供了依赖注入、...

    Spring集成Jpa(Hibernate实现)

    Spring集成JPA(Java Persistence API)是将Spring框架与ORM(Object-Relational Mapping)解决方案之一的Hibernate结合使用的常见实践。这个例子展示了如何在Spring应用中配置和使用JPA,以便利用Hibernate作为JPA...

    SpringMVC+Spring3+hibernate4集成必备jar包

    在集成Hibernate4时,需要的jar包包括: 1. hibernate-entitymanager.jar:实体管理功能,支持JPA规范。 2. hibernate-core.jar:Hibernate的核心库,包括查询语言HQL和Criteria API。 3. hibernate-validator.jar:...

    Struts2+Spring3+Hibernate4示例

    Spring3还集成了Hibernate4,使得ORM(对象关系映射)变得更加简单。在本示例中,Spring可能通过配置文件或注解来管理Bean,同时使用它的事务管理器来处理数据库事务。 Hibernate4是持久层框架,它实现了ORM,将...

    spring-boot 集成hibernate

    在本文中,我们将深入探讨如何将Spring Boot与Hibernate集成,并使用Druid作为数据库连接池。首先,我们需要理解这三个核心组件: 1. **Spring Boot**: 是一个由Pivotal团队提供的开源框架,它简化了创建独立的、...

    Spring4+Hibernate4+SpringMvc

    在Spring4+Hibernate4+SpringMvc的集成项目中,通常会使用Spring的DataSource来配置数据源,然后通过SessionFactory和Session接口进行数据库操作。Hibernate的实体类会通过注解或配置文件与数据库表关联。SpringMvc...

    Spring集成Hibernate所需jar包

    在Java企业级开发中,...不过,上述列出的jar包是Spring集成Hibernate的基本配置,能够确保基本的CRUD操作和事务管理功能正常运行。正确地引入和配置这些jar包,可以有效地提升Java企业应用的开发效率和可维护性。

    struts2+spring3+hibernate4

    在整合Struts2、Spring3和Hibernate4时,通常会利用Spring的AOP功能来实现事务管理,保证数据操作的一致性。Struts2的Action可以通过Spring的依赖注入获取到Spring管理的服务层对象,从而调用业务方法。此外,...

Global site tag (gtag.js) - Google Analytics