`
balaschen
  • 浏览: 192334 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

spring2.0事务配置实验

阅读更多
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.         xmlns:aop="http://www.springframework.org/schema/aop"  
  5.         xmlns:tx="http://www.springframework.org/schema/tx"  
  6.         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
  7.                             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd  
  8.                             http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">  
  9.                              
  10.     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  11.         <property name="dataSource">  
  12.             <ref bean="dataSource" />  
  13.         </property>  
  14.         <property name="hibernateProperties">  
  15.             <ref bean="hibernateProperties" />  
  16.         </property>  
  17.         <property name="mappingResources">  
  18.             <list>       
  19.                 <value>com/comwave/demo/webui/user/domain/User.hbm.xml</value>  
  20.                 <value>com/comwave/demo/webui/user/domain/Role.hbm.xml</value>  
  21.                 <value>com/comwave/demo/webui/user/domain/ActionInfo.hbm.xml</value>  
  22.             </list>  
  23.         </property>  
  24.     </bean>  
  25.   
  26.     <bean id="hibernateTemplate"  class="org.springframework.orm.hibernate3.HibernateTemplate">  
  27.         <property name="sessionFactory">  
  28.             <ref local="sessionFactory" />  
  29.         </property>  
  30.     </bean>  
  31.   
  32.     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  33.         <property name="sessionFactory">  
  34.             <ref local="sessionFactory" />  
  35.         </property>  
  36.     </bean>  
  37.   
  38.     <bean id="baseTxProxy" lazy-init="true"  
  39.         class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">  
  40.         <property name="transactionManager">  
  41.             <ref bean="transactionManager" />  
  42.         </property>  
  43.         <property name="transactionAttributes">  
  44.             <props>  
  45.                 <prop key="*">PROPAGATION_REQUIRED</prop>  
  46.             </props>  
  47.         </property>  
  48.     </bean>  
  49.       
  50.     <tx:advice id="txAdvice" transaction-manager="transactionManager">  
  51.         <tx:attributes>  
  52.             <tx:method name="*" propagation="REQUIRED"/>  
  53.         </tx:attributes>  
  54.     </tx:advice>  
  55.       
  56.     <tx:advice id="txReadOnlyAdvice" transaction-manager="transactionManager">  
  57.         <tx:attributes>  
  58.             <tx:method name="*" read-only="false"/>  
  59.         </tx:attributes>  
  60.     </tx:advice>  
  61.       
  62.     <aop:config proxy-target-class="true">  
  63.         <aop:pointcut id="tx1" expression="execution(* com.comwave.demo..*Manager*.*(..))"/>  
  64.         <aop:pointcut id="tx2" expression="execution(* com.comwave.demo..UserManager*.*(..))"/>  
  65.         <aop:advisor advice-ref="txAdvice" pointcut-ref="tx1" order="1"/>  
  66.         <aop:advisor advice-ref="txReadOnlyAdvice" pointcut-ref="tx2" order="2"/>  
  67.     </aop:config>  
  68.       
  69.     <bean id="userManager" class="com.comwave.demo.webui.user.impl.UserManagerImpl">  
  70.         <property name="hibernateTemplate" ref="hibernateTemplate" />  
  71.         <property name="functionManager" ref="functionManager"/>  
  72.     </bean>  
  73.       
  74.     <bean id="functionManager" class="com.comwave.demo.webui.user.impl.FunctionManagerImpl">  
  75.         <property name="hibernateTemplate" ref="hibernateTemplate" />  
  76.     </bean>  
  77. </beans>  
分享到:
评论
2 楼 balaschen 2010-11-09  
can4you 写道
请教问题:你好,请教一个问题,我现在要模拟两个事务同时更新一张表中的一条记录而造成死锁,即会抛出org.springframework.dao.DeadlockLoserDataAccessException异常,但是我现在不清楚事务中什么时候锁住表中的记录,目前我的做法测试无果:做法如下:
1.配置Spring声明式事务,propagation_required且隔离级别未配置
2.用两个事务(加载不同的sessionFactory)循环调用方法执行update语句,并在update之前线程sleep(1000)

望解答,谢谢!


这个和spring配置无关。
要模拟死锁很简单,你写个多线程单元测试就能模拟出来。
1 楼 can4you 2010-09-14  
请教问题:你好,请教一个问题,我现在要模拟两个事务同时更新一张表中的一条记录而造成死锁,即会抛出org.springframework.dao.DeadlockLoserDataAccessException异常,但是我现在不清楚事务中什么时候锁住表中的记录,目前我的做法测试无果:做法如下:
1.配置Spring声明式事务,propagation_required且隔离级别未配置
2.用两个事务(加载不同的sessionFactory)循环调用方法执行update语句,并在update之前线程sleep(1000)

望解答,谢谢!

相关推荐

    Spring和Struts教程

    在实验一中,开发者通常会使用MyEclipse或Eclipse作为开发工具,创建一个包含Struts 1.3和Spring 2.0的项目,名为study07。这个项目的主要目标是了解如何配置和搭建Struts与Spring的整合环境,以及如何通过Spring...

    Struts+spring+JPA例子

    在这个"Struts2.2.3+Spring3.0.5+JPA2.0"的例子中,我们将深入探讨这三个框架的集成与应用。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地简化了Java Servlet和JSP的开发...

    spring 修订版

    ### Spring 修订版知识点概述 #### 一、Spring框架简介 ...通过上述实验案例,我们不仅了解了Spring框架的基本概念,还掌握了如何使用Spring进行依赖注入和配置管理。这对于学习和使用Spring框架非常有帮助。

    MyEclipse 整合ssh步骤讲解

    3. **添加Spring 2.0框架支持**: - 同样在项目`ssh`上右键,选择“MyEclipse”-&gt;“Add Spring Capabilities…”。 - 选择需要的Spring库文件,通常包括核心库、事务管理库等。 - 指定Spring配置文件存放的位置,...

    restful入门实例(可运行)

    Spring是一个全面的企业级应用框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能。在RESTful实例中,Spring可以帮助管理应用的组件,如Bean的生命周期管理,以及数据库连接池等。同时,Spring还提供了...

    ssh登录,注册.pdf

    3. **添加Spring2.0支持**:同样通过右键菜单,选择MyEclipse -&gt; Add Spring Capabilities,然后选择需要的Spring库文件,将其添加到WEB-INF目录下。 4. **配置数据源**:对于SQL2000,每个表都需要有主键,否则...

    ssh登录注册 希望能给大家帮助

    3. 添加Spring2.0框架:同样右键点击项目,选择MyEclipse-&gt;Add Spring Capabilities…,然后选取需要的Spring库文件,并将其添加到WEB-INF文件夹。 4. 配置数据源(针对SQL 2000):通过MyEclipse的Database ...

    WEB最新架构设计开发文档

    总结,该文档提供了在现代WEB开发中集成Spring 3.0.5和JPA 2.0(通过Hibernate 3.6)的实践经验,涵盖了环境配置、关键配置、性能优化等方面,对于理解和实施数字化转型项目的现代化WEB架构具有参考价值。

    Spring和Struts框架学习总结

    - **事务管理**:Spring框架提供了对Java Transaction API(JTA)的支持,同时也支持本地事务。它还支持声明式事务管理,可以通过简单的XML或注解配置来管理事务,无需编写额外的代码。 #### 二、Struts框架简介及...

    myeclipse下ssh登陆

    - **开发流程**:在完成了上述步骤后,开发者可以利用 SSH 架构进行业务逻辑开发,包括使用 Struts 进行 MVC 分离、使用 Spring 进行依赖注入和事务管理、使用 Hibernate 进行对象关系映射等。 - **调试与测试**:在...

    (springboot+MySQL)实验室自主预约系统.zip

    SpringBoot通过“约定优于配置”的理念,内置Tomcat服务器,自动配置Spring,让开发者可以快速地搭建一个生产级别的应用。在这个项目中,SpringBoot负责处理应用程序的核心逻辑,如服务层的构建、数据访问等。 2. *...

    基于Java的实验室网上预约系统源码数据库.zip

    2. **SpringBoot**:SpringBoot是Spring框架的简化版,它内置了Tomcat服务器,简化了项目的配置,使得开发者能更快地搭建应用。在这个系统中,SpringBoot负责处理HTTP请求,管理服务bean,以及提供自动配置功能,...

    Activiti6.0.x-中文版用户指南

    - **事务管理**:讲解如何在Spring的事务管理框架下运行Activiti。 - **自动资源部署**:自动部署在Spring上下文中的流程定义。 - **单元测试**:使用Spring进行Activiti的单元测试策略。 - **JPA支持**:与...

    activiti的说明文档

    - **事务**: 与Spring事务管理器集成。 - **表达式**: 使用Spring表达式语言。 - **资源的自动部署**: 自动部署流程定义文件。 - **单元测试**: 支持Spring Test框架。 #### 五、部署 **业务文档**: 提供关于流程...

    Activiti 5.8中文用户手册

    - **事务管理:** 介绍了Activiti如何与Spring事务管理集成。 - **配置示例:** 提供了具体的Spring配置代码。 **4.3 表达式** - **表达式的使用:** 如何在Activiti的流程定义中使用表达式。 **4.4 自动资源部署*...

    Activiti 5.13 中文用户手册 PDF版

    - **事务**:支持与 Spring 事务管理的集成。 - **表达式**:利用 Spring 表达式语言增强灵活性。 - **资源的自动部署**:实现流程定义的自动加载。 - **单元测试**:提供测试模板和工具,简化测试过程。 #### 6. ...

    Activiti5用户指南(中文版)

    Activiti为开发者提供了一个丰富的API和多种配置选项,它能够很好地与Spring框架集成,同时也可以在Java EE应用服务器以及各种Java应用程序中使用。 本指南是Activiti 5.x版本的用户手册,主要介绍了如何安装、配置...

Global site tag (gtag.js) - Google Analytics