`
accpxudajian
  • 浏览: 458827 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring配置事务

    博客分类:
  • Java
阅读更多
<?xml version="1.0" encoding="UTF-8"?>

<!-- 定义该文档是xml文档 该xml文档是1.0版本 该xml文档使用的是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-2.0.xsd 

        http://www.springframework.org/schema/aop 

     http://www.springframework.org/schema/aop/spring-aop-2.0.xsd 

        http://www.springframework.org/schema/tx 

     http://www.springframework.org/schema/tx/spring-tx-2.0.xsd

        ">

      <!--定义beans标签,以及beans内部的自定义标签的格式标准,该文档主要是配置事务,所有重点讨论aop和tx两个标签。  -->   

    <!-- 配置事务管理器bean -->

    <bean id="transactionManager"

         class="org.springframework.orm.hibernate3.HibernateTransactionManager">

        <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

    <!-- 

       aop:config标签的作用是配置一个切面,和需要拦截的类和方法.经过上边的配置达到的效果是:

       org.hdth包下边的以"Logic"结尾的class里边的方法名称为任何名称的方法,将按照txAdvice通知的规则执行事务。

    -->

    <tx:advice id="txAdvice" transaction-manager="transactionManager">

    <!-- 

       tx:advice标签的作用是:定义事务的属性,或者可以说定义可以走事务方法的属性。更准且的说是定义:什么样的方法对应走什么样的事物。

       其中,<tx:attributes>定义了事务的属性,也就是定义了走事务方法的属性。已知的属性就是方法的名称一个属性。规则:

       定义方法的开始字符,并可以使用"*"号代替方法名称的其他部分。当切面中的方法符合这些方法名称的要求的时候,就会自动走事务处理。

       默认情况下,方法的只读属性应该是false(猜测的),对于查询方法不需要起事务,为了节省资源,应该显示配置查询方法的只读事务属性为true。

       tx:advice的主要属性:

       id:通知对象的标示id

       transaction-manager:指定该事务通知由哪个事务处理器处理。事务处理器的定义有很多种。

     -->

       <tx:attributes>

           <tx:method name="insert*"/>

           <tx:method name="update*"/>

           <tx:method name="save*"/>

           <tx:method name="add*"/>

           <tx:method name="remove*"/>

           <tx:method name="delete*"/>

           <tx:method name="modify*"/>

           <tx:method name="change*"/> 

           <tx:method name="reset*"/>

           <tx:method name="recycle*"/>

           <tx:method name="audit*"/>  

      <tx:method name="merger*"/>

                  

           <!-- 查询方法的事务配置成只读的 -->

           <tx:method name="get*"/>

           <tx:method name="list*"/>

           <tx:method name="find*" read-only="true"/>

           <tx:method name="load*" read-only="true"/>

           <tx:method name="search*" read-only="true"/>

           <tx:method name="*" read-only="true"/>

       </tx:attributes>

    </tx:advice>

    <!-- 在此之前,应该先 配置事务管理器,这部分的内容在两外一个xml文件配置了大概如下:(实际有很多中配置事物的方法,此处仅是一种而已。)

     配置事务管理器bean :

    <bean id="transactionManager"

        class="org.springframework.orm.hibernate3.HibernateTransactionManager">

        <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

    所以猜测:所有的spring配置文档内的东西都是通用的,spring会将所有的配置文档统一整理,就好比这些文档都写在一个配置文件中一样。

     -->

    <aop:config proxy-target-class="true">

       <aop:advisor pointcut="execution(* org.hdht..*Logic.*(..))" advice-ref="txAdvice"/>

       <!-- aop:advisor的作用是构造一个通知,通知的的切面有pointcut指定。

       aop:advisor的属性说明:

       pointcut:该属性用来构造切面,切面的概念就是指定某一些后台java类中的一些方法或者是映射后台一部分的java类的一些方法,总之,最后从后台

           单独映射出一些java方法(重点在是方法上)。\

           格式:execution(* your.full.package.*(..)) 也可以简化为:execution(* your..*pkname.*(..)) 

              说明:第一个*号不明白,似乎是必须有的,这个表达式中的两个"."号似乎就是省略号,意思是模糊路径。"*pkname"是说所有以"pkname"结尾的包。

              ".*(..)"的意思是,该包内的所有的方法,”(..)“表示带有任意类型和个数的参数的方法。

       adviec-ref:该属性用来说明已经指定的切面(就是一部分java类的一些方法)根据什么"通知"规则使用spring的事务。实际应用过程中,主要是指定方法以什么字符开头。

        -->

    </aop:config>

    <bean class="org.hdht.commonweb.ApplicationContextHolder" lazy-init="false"/>

</beans>



 

分享到:
评论

相关推荐

    详解Spring配置事务的五种方式

    本文将详细介绍Spring配置事务的五种方式,以便开发者们更好地理解和应用。 首先,Spring配置事务通常涉及三个关键组件: 1. **DataSource**:数据源,它是连接到数据库的桥梁,负责管理数据库连接。在使用...

    spring配置事务五种方式.doc

    本文将详细介绍Spring配置事务的五种方法,每种方法都基于相同的基本组件:DataSource、TransactionManager以及代理机制。理解这些配置方式有助于更好地控制事务在应用程序中的行为。 1. **每个Bean都有一个代理** ...

    spring 配置事务

    而Spring配置事务管理则是其中的关键技术,它确保了业务操作的一致性和数据的完整性。本篇文章将详细探讨Spring如何配置事务,以及如何在Spring与Hibernate集成的环境中实现事务管理。 首先,让我们了解什么是事务...

    spring配置事务

    这里我们将深入探讨Spring配置事务所涉及的知识点,以及与之相关的jar包。 首先,Spring提供了两种主要的事务管理方式: 1. **声明式事务管理**:这是通过在XML配置文件或注解中定义事务边界来实现的。这种方式...

    Spring配置事务在DAO层和业务逻辑层

    ### Spring配置事务在DAO层和业务逻辑层 #### 一、Spring事务管理概述 Spring框架提供了两种事务管理方式:编程式事务管理和声明式事务管理。其中,声明式事务管理是通过配置来完成的,它利用Spring AOP特性,将...

    Spring配置事务处理

    这是在java里使用到spring的配置文件里,添加事务处理过程,以至于可以回滚事务,当中使用到拦截器。

    Spring事务配置的五种方式

    Spring 事务配置是Spring框架中不可或缺的部分,它用于管理和协调应用程序中的事务边界,确保数据的一致性和完整性。在Spring中,事务配置主要涉及到三个核心组件:DataSource、TransactionManager以及代理机制。...

    ssh框架使用spring配置事务所需的jar包

    在Spring中配置事务管理,我们需要引入特定的jar包来实现AOP功能,这些正是`aopalliance.jar`、`aspectjrt.jar`和`aspectjweaver.jar`。 首先,`aopalliance.jar`是AOP Alliance项目提供的一个库,它定义了AOP领域...

    Spring配置JTA事务管理

    4. 配置事务属性:Spring提供了`@Transactional`注解来标记需要进行事务管理的方法。你可以设置事务的隔离级别、传播行为、超时时间等属性。 5. 使用事务:在业务逻辑中,你可以通过编程式或声明式的方式来使用事务...

    Spring AOP配置事务方法

    Spring AOP 配置事务方法 Spring AOP(Aspect-Oriented Programming,面向方面编程)是一种编程范式,它允许开发者在不修改源代码的情况下,增强和修改应用程序的行为。 Spring AOP 提供了一种灵活的方式来实现事务...

    spring事务配置的五种方式

    1. **基于XML的全局事务配置**:这种方式通过在Spring配置文件中设置`&lt;tx:advice&gt;`和`&lt;aop:config&gt;`元素来实现事务管理。相比于第一种方式,这种方式更加简洁,适用于所有业务逻辑Bean。 2. **基于注解的事务配置**...

    spring声明事务的配置

    为了克服上述问题,Spring 1.x引入了一种更推荐的方式,即通过基类来配置事务。你可以创建一个抽象的事务代理bean,如`baseTransactionProxy`,并在此处定义通用的事务属性。然后,你的业务bean可以继承这个基类,...

    spring3.0两种事务管理配置

    Spring 3.0 事务管理配置 Spring 3.0 提供了两种事务管理配置方法:基于 XML 的事务管理和基于 @Transactional 的事务管理,这两种方法都是为了实现事务管理的目标,分别具有不同的配置方式和优缺点。 基于 XML ...

    spring的事务管理配置

    spring的事务管理配置详解.txt详细的描述了如何配置spring的事物。

    spring声明式事务配置

    根据提供的信息,我们可以深入探讨Spring框架中的声明式事务配置及其多种实现方式。声明式事务管理是一种简化事务管理的方式,它允许开发人员通过配置而非编程来指定事务边界,从而减少了代码的复杂性并提高了可维护...

    spring事务与数据库操作

    ### Spring事务与数据库...- **配置事务规则**:最后,需要配置事务规则,指定哪些方法需要在事务中执行。 ##### 1.3 示例代码 下面是一个简单的示例,展示了如何使用XML配置文件来配置Spring的声明式事务: ```xml ...

    Spring 事务代理配置

    在深入探讨Spring事务代理配置之前,我们先简要回顾一下Spring...通过以上步骤,我们就可以在Spring中成功配置事务代理,使得应用程序中的业务方法能够自动进行事务管理,极大地提高了代码的可维护性和事务的一致性。

    Spring基于XML方式配置事务

    这里我们主要探讨的是"Spring基于XML方式配置事务",这涉及到Spring的事务管理器、事务属性以及如何在XML配置文件中定义这些元素。 首先,Spring的事务管理分为两种模式:编程式事务管理和声明式事务管理。编程式...

    实验 spring 声明事务

    -- 配置事务管理器 --&gt; &lt;bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&gt; &lt;!-- 启用基于注解的事务管理 --&gt; &lt;!-- 定义事务策略 --&gt; *" ...

Global site tag (gtag.js) - Google Analytics