`
e3002
  • 浏览: 79272 次
社区版块
存档分类
最新评论

spring1.x spring2的声明式事务配置

阅读更多

 spring1的声明式事务配置:

    <!-- 事务的处理 -->
    <!-- Hibernate使用的事物管理器-->
    <bean id="transactionManager"    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    <bean id="jdbcTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     <property name="dataSource" ref="jdbcDataSource"></property>
    </bean>

    <!-- 事务处理代理的抽象类,可被继承使用-->
    <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
        <property name="transactionManager">
            <ref bean="transactionManager" />
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="create*">PROPAGATION_REQUIRED</prop>
                <prop key="remove*">PROPAGATION_REQUIRED</prop>
                <prop key="confirm*">PROPAGATION_REQUIRED, -BetException</prop>
                <prop key="update*">PROPAGATION_REQUIRED</prop>
                <prop key="set*">PROPAGATION_REQUIRED</prop>
                <prop key="do*">PROPAGATION_REQUIRED, -SettleException</prop>
                <prop key="settle">PROPAGATION_REQUIRED, -Exception</prop>
                <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
            </props>
        </property>
    </bean>
    <bean id="jdbcTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
     <property name="transactionManager" ref="jdbcTransactionManager"></property>
     <property name="transactionAttributes">
      <props>
       <prop key="refuseGaming">PROPAGATION_REQUIRED</prop>
      </props>
     </property>
    </bean>

 

因为我们的事务一般都放在service层,ok 看下service是如何与上面的事务配置联系起来的

    <bean id="matchService" parent="baseTransactionProxy">
        <property name="target">
            <bean class="com.airinbox.gamester.service.impl.MatchService">
                <property name="matchDao">
                    <ref bean="matchHibernateDao" />
                </property>
                <property name="gamblingDao">
                    <ref bean="gamblingHibernateDao" />
                </property>
                <property name="teamDao">
                    <ref bean="teamHibernateDao" />
                </property>
                <property name="starDao">
                    <ref bean="starHibernateDao" />
                </property>
            </bean>
        </property>
    </bean>

ok,spring1.x事务配置完成,下面看spring2的配置简单了很多

 <!--Hibernate TransactionManager-->
 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory"/>
 </bean>

 <!-- 以AspectJ方式 定义 AOP -->
 <aop:config >
  <!-- 注意,请把第2个*号换为项目package 这里的写法可以参考spring手册 -->
  <aop:advisor pointcut="execution(* *..service.*Manager.*(..))" advice-ref="txAdvice"/>
  <aop:advisor pointcut="execution(* org.springside.core.dao.*Dao.*(..))" advice-ref="txAdvice"/>
 </aop:config>

 <!-- 基本事务定义,使用transactionManager作事务管理,默认get*方法的事务为readonly,其余方法按默认设置.
    默认的设置请参考Spring文档事务一章. -->
 <tx:advice id="txAdvice">
  <tx:attributes>
   <tx:method name="get*" read-only="true"/>
   <tx:method name="find*" read-only="true"/>
   <tx:method name="*"/>
  </tx:attributes>
 </tx:advice>

是不是简单了很多!

分享到:
评论

相关推荐

    spring4.x.x中文文档

    此外,事务管理功能也得到了优化,提供了一种声明式的方式处理事务,使得事务边界更加清晰,代码更易于维护。 Spring 4.x.x还引入了Spring Boot,这是一个用于简化Spring应用程序初始搭建以及开发过程的工具。通过...

    《Spring 3.x 企业应用开发实战》lib包

    3. **数据访问集成(Data Access Integration, DA/I)**:Spring提供了对各种持久层技术如JDBC、Hibernate、MyBatis等的集成,简化了数据库操作,并支持声明式事务管理。 4. **Web应用支持**:Spring MVC是Spring...

    精通Spring4.x企业应用开发实战pdf+源码

    1. **依赖注入**:Spring通过DI机制,使得对象间的依赖关系在配置文件中声明,而不是硬编码在类内部,降低了代码的耦合度,提高了可测试性和可维护性。 2. **AOP**:AOP是Spring提供的用于实现横切关注点(如日志...

    Spring声明式事务配置模板2.x

    Spring 2.x版本的声明式事务配置模板是开发者常用的一种方式,它通过AOP(面向切面编程)实现事务的自动管理,使得开发者无需在业务代码中显式调用事务开始、提交或回滚等操作。下面我们将详细探讨Spring 2.x的声明...

    精通Spring4.x(包含源码)

    3. **Spring事务管理**:Spring提供了声明式事务管理,开发者可以在配置文件中定义事务边界,无需在代码中显式处理事务开始、提交和回滚,简化了事务处理,同时保证了数据的一致性。 4. **Spring MVC**:Spring的...

    精通Spring 4.x 企业应用开发实战 + 源码

    4. **事务管理**:Spring提供了声明式事务管理,使得开发者无需手动处理事务,只需在配置中声明事务边界,提高了代码的可读性和可维护性。 5. **MVC Web框架**:Spring MVC是Spring提供的用于构建Web应用的模块,它...

    spring 5.0.x源码.zip

    事务管理方面,Spring 5.0.x支持编程式和声明式事务管理,并对事务回滚规则进行了优化。同时,Spring的TransactionTemplate提供了一种简单的方式在非控制器代码中管理事务。 在测试方面,Spring Test模块提供了丰富...

    spring4.x源码

    Spring支持编程式和声明式事务管理。在源码中,我们可以看到`PlatformTransactionManager`接口及其实现(如`DataSourceTransactionManager`)是如何控制事务的开始、提交、回滚等操作。同时,`@Transactional`注解的...

    精通spring2.x企业应用开发详解

    5. **AOP事务管理**:Spring的AOP支持可以用于声明式事务管理,只需在配置文件中声明,无需在业务代码中显式处理事务开始、提交或回滚。 6. **MVC框架**:Spring MVC是Spring提供的一个用于构建Web应用的模型-视图-...

    《Spring 3.x企业应用开发实战》PDF

    它简化了事务管理,无论是编程式还是声明式的事务处理,都使得事务控制变得更加简单。 6. **Web应用支持**:Spring MVC是Spring提供的一个强大的MVC框架,用于构建Web应用。它提供了模型-视图-控制器架构,使得开发...

    Spring3.X编程技术与应用

    Spring框架提供了声明式事务管理的功能,通过Spring的事务抽象,可以实现声明式事务管理,而无需依赖于特定的事务管理API。在Spring3.X中,使用@Transactional注解可以非常容易地将事务管理应用于类和方法级别。 7....

    Spring 4.X:企业应用开发实战精通 完整版

    6. **Spring事务管理**:Spring提供了强大的事务管理机制,无论是编程式还是声明式的事务管理,都能确保业务逻辑的完整性和一致性。 7. **Spring Boot**:虽然不在4.x版本范围内,但作为Spring的现代化启动器,...

    Spring 3.x 企业应用开发实战 PDF与源码 高清 带书签

    书中将介绍如何配置数据源、声明式事务管理以及使用Spring Data进行数据访问对象(DAO)的简化。 企业级应用往往涉及到复杂的事务管理,Spring 3.x提供了强大的事务管理机制,包括编程式事务管理和声明式事务管理。...

    spring 4.X企业应用实战

    Spring 4.x提供了声明式事务管理,开发者可以通过注解或XML配置来控制事务的边界,使得事务处理更加规范且易于维护。 Spring Boot是Spring 4.x时代的一个亮点,它极大地简化了Spring应用的启动和配置过程,提供了...

    spring声明式事务配置

    ### 标题解读:Spring声明式事务配置 Spring框架提供了两种主要类型的事务管理方式:编程式事务管理和声明式事务管理。声明式事务管理通过XML配置或注解的形式定义事务边界,使得业务逻辑与事务控制分离。 ### ...

    spring 3.x企业应用开发实战

    Spring的声明式事务管理能够将事务的边界定义在配置文件中,或者通过注解来实现。 4. 数据访问抽象:Spring提供了一套抽象数据访问框架,支持JDBC、ORM、OXM、JMS和事务管理。Spring通过模板类(如JdbcTemplate)...

    精通Spring 4.x 企业应用开发实战高清版

    在事务管理方面,Spring 4.x提供了声明式事务管理,让开发者无需编写复杂的事务控制代码。书中会讲解如何配置事务管理器,以及@Transactional注解的使用方法,帮助读者理解事务的ACID属性和隔离级别。 Spring AOP...

    spring3.2.x源码 for Eclipse

    Spring提供了声明式事务管理,使得开发者无需在业务逻辑代码中显式处理事务,而是通过配置来指定事务边界。 7. **Bean工厂和ApplicationContext** Spring的Bean工厂是对象的容器,负责创建、初始化、配置和管理...

    Spring4.x源码

    通过AOP,Spring可以实现声明式的事务管理,简化了事务处理的复杂性。 6. **MVC框架** Spring MVC是Spring提供的Web开发框架,它分离了模型、视图和控制器,使得Web应用的开发更加清晰和高效。Spring MVC通过...

Global site tag (gtag.js) - Google Analytics