`

Spring Hibernate使用TransactionInterceptor声明式事务配置

阅读更多

<!-- 事务管理器 -->
 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
     <property name="sessionFactory">
         <ref bean="sessionFactory"/>
     </property>
 </bean>
 <!-- 事务拦截器,激活事务管理器所必须的bean -->
 <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> 
        <property name="transactionManager"> 
            <ref bean="transactionManager" /> 
        </property>  
        <!-- 配置事务属性 --> 
        <property name="transactionAttributes"> 
           <props> 
              <prop key="delete*">PROPAGATION_REQUIRED</prop> 
              <prop key="add*">PROPAGATION_REQUIRED</prop> 
              <prop key="update*">PROPAGATION_REQUIRED</prop> 
              <prop key="save*">PROPAGATION_REQUIRED</prop> 
              <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> 
          </props> 
       </property> 
     </bean> 
     <!-- 定义事务处理代理bean,他需要两个属性,一个是指定需要代理的bean,另一个是代理bean所需的事务拦截器 -->
     <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> 
        <property name="beanNames"> 
           <list> 
              <value>tempService</value> 
           </list> 
        </property> 
        <property name="interceptorNames"> 
           <list> 
              <value>transactionInterceptor</value> 
           </list> 
        </property> 
     </bean>
    <!-- 业务逻辑层 -->
 <bean id="tempService"
  class="com.cj.transaction.service.TempService" abstract="false"
  lazy-init="default" autowire="default" dependency-check="default">
  <property name="userDAO">
   <ref bean="userDAO" />
  </property>
  <property name="deptDAO">
   <ref bean="deptDAO" />
  </property>
 </bean>
 <bean id="userDAO" class="com.cj.transaction.hibernate.UserDAO">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>
 <bean id="deptDAO" class="com.cj.transaction.hibernate.DeptDAO">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>

如果模块过多话,可以考虑用自动创建事务代理的方式
    <!-- 自动代理 --> 
    <bean id="autoproxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> 
       <property name="beanNames"> 
          <list> 
             <value>*Service</value> 
          </list> 
       </property> 
       <property name="interceptorNames"> 
          <list> 
             <value>transactionInterceptor</value> 
          </list> 
       </property> 
    </bean>

 

分享到:
评论

相关推荐

    Spring_Hibernate使用TransactionInterceptor声明式事务配置.doc

    Spring_Hibernate使用TransactionInterceptor声明式事务配置 在这篇文章中,我们将探讨使用Spring_Hibernate框架实现声明式事务配置的方法,具体来说,就是使用TransactionInterceptor来管理事务。在Spring框架中,...

    Spring Hibernate事务实例

    本教程将深入探讨如何在Spring框架中利用`TransactionInterceptor`进行声明式事务管理,与Hibernate集成实现高效的数据库事务控制。 首先,了解事务管理是至关重要的。事务是一组数据库操作,这些操作要么全部成功...

    spring hibernate 事务管理学习笔记(一)

    接下来,我们将深入讨论Spring中的声明式事务管理。在Spring配置文件中,我们需要开启事务管理器,并在需要事务控制的Service层方法上添加`@Transactional`注解。这个注解允许我们指定事务的传播行为(如REQUIRED、...

    spring1.2申明式事务.txt

    根据提供的文件信息,本文将详细解析Spring 1.2中声明式事务管理的相关知识点,包括其配置方式、工作原理以及如何在实际应用中实施。 ### Spring 1.2声明式事务简介 Spring框架中的声明式事务管理是通过AOP(面向...

    spring 的3种事务配置方式

    本文将详细介绍Spring中的三种事务配置方式:编程式事务管理、声明式事务管理和基于注解的事务管理。 1. 编程式事务管理: 编程式事务管理是通过调用Transaction API来显式地开始、提交、回滚事务。这通常通过...

    spring源码分析(1-10)

    1. **Spring 事务处理**:Spring 提供了声明式事务管理,允许开发者在配置文件中定义事务边界,无需在业务逻辑代码中显式控制事务开始、提交和回滚。它主要基于AOP代理来实现,通过TransactionInterceptor拦截器进行...

    Spring2.0的配置

    在Spring 2.0中,声明式事务配置通常通过ProxyFactoryBean和TransactionInterceptor来实现。以下是一个示例配置: ```xml &lt;!-- 定义数据源 --&gt; ${jdbc.driverClassName}"/&gt; ${jdbc.url}"/&gt; ${jdbc.username}"/&gt;...

    Spring事务管理配置

    而声明式事务管理则通过配置元数据(如XML或注解)来定义事务的边界和传播行为,这种方式更为简洁且易于维护。 ### 数据库连接配置与Hibernate整合 在给定的示例中,首先展示了数据库连接的配置文件,该文件遵循...

    spring_如何管理事务的

    Spring通过AOP(面向切面编程)技术实现了声明式事务管理,可以通过XML配置或注解来实现。 ##### 1. XML配置示例 ```xml &lt;!-- 定义数据源 --&gt; &lt;!-- 配置数据源参数 --&gt; &lt;!-- 定义事务管理器 --&gt; ...

    spring学习事务源码

    首先,Spring事务管理有两种主要模式:编程式事务管理和声明式事务管理。编程式事务管理通过调用`PlatformTransactionManager`接口提供的方法进行显式控制,如`beginTransaction()`, `commit()`, 和`rollback()`。...

    spring事务支持

    配置Spring的声明式事务管理,通常需要在Spring的配置文件中包含`&lt;tx:annotation-driven&gt;`元素,并指定对应的`PlatformTransactionManager`。例如: ```xml &lt;beans xmlns="http://www.springframework.org/schema/...

    spring-tx事物源码

    Spring的事务管理机制包括编程式事务管理和声明式事务管理,这两种方式都基于`spring-tx`模块。在这个源码中,我们可以深入理解Spring如何处理事务的生命周期、回滚规则以及与各种数据源的集成。 首先,`spring-tx`...

    Hibernate3事务管理[借鉴].pdf

    本文将详细讨论Spring框架中的Hibernate事务管理机制,包括事务的隔离级别、事务的传播性质以及Spring的声明式事务管理。 首先,事务的隔离级别是确保多事务并发执行时数据一致性的重要手段。Spring提供了五种不同...

    Spring事务管理的方法

    Spring框架作为Java领域中一个非常流行的轻量级框架,为开发者提供了多种方式来实现事务管理,其中主要分为编程式事务管理和声明式事务管理两种。这两种方式各有优势与局限性,在不同的场景下可以选择合适的事务管理...

    Spring事务相关类Uml图

    声明式事务管理则基于AOP(面向切面编程),通过在配置或注解中声明事务边界,使得事务管理与业务逻辑分离,提高了代码的可维护性。 Spring中的事务管理主要涉及以下关键类: 1. `PlatformTransactionManager`: 这...

    springssh 我上培训班时spring框架搭建课件

    事务管理是企业级应用中非常重要的一部分,Spring提供了声明式事务管理,这比传统的编程式事务管理更加灵活和简洁。 1. **事务管理器配置**:配置HibernateTransactionManager作为事务管理器,它可以自动地处理事务...

    spring-trasaction项目源码

    例如,通过XML配置或Java配置来启用声明式事务管理。 总结,Spring的事务管理是其强大功能的一部分,通过深入理解并掌握其源码,我们能够更灵活、高效地处理复杂的事务场景,确保系统的稳定性和数据的一致性。

    SSH框架配置

    **第十步:配置声明式事务** - 配置`HibernateTransactionManager`对象,支持事务管理。 - 方案一:使用`TransactionProxyFactoryBean`配置多个目标类,适用于复杂场景。 - 方案二:使用`TransactionInterceptor`和...

    spring源码spring-framework-4.2.5.RELEASE

    8. **声明式事务管理**:Spring通过@Transactional注解实现了声明式事务管理。`org.springframework.transaction`和`org.springframework.transaction.interceptor`包中的TransactionInterceptor处理事务的开始、...

Global site tag (gtag.js) - Google Analytics