`

ssh 框架中spring的事务控制

 
阅读更多
ssh框架中,通常我们的action会注入一个blo类,及服务层类,这个类里可以处理业务逻辑,执行多个dao的操作。
这个类是受spring事务控制的。例如以下代码,当我们请求addRoom.do的时候,就把页面输入的Room信息发到后台,从而达到插入数据库的操作。

但是这个操作如果在roomBlo里出现异常,即使插入数据库操作已完成,就会把事务回滚,从而自动取消刚刚完成数据库操作。 注意这里配置的事务类型是PROPAGATION_REQUIRED

beans.xml
<bean name="/addRoom"  lazy-init="true"
		class="action.AddRoomAction">
		<property name="roomBlo">
			<ref bean="roomBloProxy" />
		</property>
</bean>


<bean id="roomBloProxy"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
		<property name="transactionManager">
			<ref bean="myTransactionManager" />
		</property>
		<property name="target">
			<ref bean="roomBlo" />
		</property>
		<property name="transactionAttributes">
			<props>
				<prop key="*">PROPAGATION_REQUIRED</prop>

			</props>
		</property>
</bean>

	<bean id="roomBlo" class="blo.RoomBlo">
		<property name="roomDao">
			<ref bean="room_hibernateDao" />
		</property>
	</bean>
	


RoomBlo 类我们这么写:

public class RoomBlo {
...
		public void addRoom(Room room) {
		roomDao.addRoom(room);
		throw new RuntimeException("dd");
	}
	...
		
	}



这个roomDao.addRoom(room)操作会在报出异常后回滚。

但是如果我们配置的事务类型是PROPAGATION_NOT_SUPPORTED,但是这里异常后事务就不会回滚。


引用
Spring中常用事务类型:


PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED--如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。
分享到:
评论

相关推荐

    在SSH框架中加入事务支持

    在SSH框架中,Hibernate作为ORM工具,通常与Spring事务管理结合使用。当Spring管理事务时,Hibernate的Session将在事务范围内打开和关闭,保证了数据的一致性。 至于Struts,它是SSH框架的前端控制器,主要负责请求...

    在SSH框架Spring的作用

    在SSH框架中,Spring扮演着至关重要的角色,它作为容器,负责管理整个应用程序的组件,包括但不限于业务逻辑、DAO层和控制器。Spring的两大核心特性——IoC(Inversion of Control,控制反转)和DI(Dependency ...

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

    在Java开发中,SSH(Spring、Struts、Hibernate)是一个常用的三大框架组合,用于构建企业级Web应用程序。其中,Spring框架扮演着核心角色,它提供了一种强大的依赖注入(DI)机制,以及面向切面编程(AOP)支持,...

    SSH和Spring框架简介

    通过阅读"SSH框架简介.doc"和"Spring框架简介.doc",你可以深入理解这两个框架的工作原理、优缺点及应用场景,为你的Java开发之路打下坚实基础。在学习过程中,实践是关键,尝试创建小型项目,将理论知识转化为实际...

    step by step ssh 04 Spring 事务控制

    在IT行业中,SSH通常指的是Struts、Spring和Hibernate三大框架的集成,这三大框架是Java Web开发中的核心组件。在"step by step ssh 04 ...通过实践和学习,开发者可以更加熟练地运用SSH框架进行复杂的企业级应用开发。

    带事务的ssh框架源代码

    在这个“带事务的ssh框架源代码”中,我们将会探讨SSH框架如何处理数据库事务,以及不同版本的Spring(1.2、2.5、3.2)在事务管理上的差异。 首先,Struts作为表现层框架,主要负责用户界面与控制器之间的交互。它...

    SSH框架JAR包集合

    SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合,用于构建高效、可维护的Web应用程序。这些框架各自负责不同的职责,Spring作为基础架构框架,Struts处理视图与控制,Hibernate则专注于...

    SSH(Spring+Hibernate+Struts2)框架整合必须的85个jar包

    SSH框架整合是Java Web开发中常见的一种技术栈,由Spring、Hibernate和Struts2三个开源框架组合而成。这个组合提供了一种高效、灵活且可扩展的解决方案,用于构建企业级的Web应用程序。以下是对SSH框架整合及其中...

    SSH框架搭建源码

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个压缩包文件"SSHdemo"提供了一个SSH框架搭建登录功能的示例,帮助开发者了解并实践如何整合这三个框架来构建一个...

    ssh框架(spring+struts2+hibernate)

    SSH框架,全称为Spring、Struts2和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了模型-视图-控制器(MVC)架构模式,数据库持久化,以及强大的前端展示能力,使得开发者能高效地构建...

    ssh框架(spring和hibernate)

    SSH框架,全称为Spring、Struts和Hibernate,是Java开发中的一个经典组合,常用于构建企业级Web应用程序。这三个框架分别承担着不同的职责,协同工作以实现高效、灵活且易于维护的软件架构。 Spring框架是核心,它...

    Java SSH 框架整合,学习源码

    8. **实战经验**:在实际项目中,开发者需要关注性能优化、事务管理、异常处理等问题,这都需要对SSH框架有深入的理解。例如,合理使用Spring的AOP进行事务管理,避免Struts的性能瓶颈,以及优化Hibernate的查询性能...

    ssh框架纯净版

    在实际开发中,SSH框架的集成使得开发者能高效地进行业务逻辑处理,同时Spring的事务管理功能可以确保数据一致性。通过阅读提供的文件,开发者可以深入理解SSH框架的工作原理,并将其应用于实际项目中,提高开发效率...

    SSH框架整合中spring框架所需要的jar包

    该资源中包含SSH框架整合中spring框架所需要的全部jar包。包括: (1)IOC核心包(4个包和2个日志包) (2)整合web (3)Spring整合JUnit测试包 (4)AOP核心包(4个包) (5)JDBC模板和事务核心包(spring-jdbc|...

    SSH框架整合项目源码

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个项目源码提供了SSH整合的实践案例,特别适合初学者学习和理解Web应用的开发流程。 Struts2作为MVC(Model-View-...

    ssh框架整合详细步骤(spring+struts2+hibernate)

    ### SSH框架整合详细步骤(spring+struts2+hibernate) #### 一、整合概述 在现代Web应用开发中,SSH(Struts2、Spring、Hibernate)框架因其各自独特的功能和优势,常被组合使用以构建高效、稳定且易于维护的系统...

    SSH框架整合包/SSH框架jar包集合/Spring/Struts2/Hibernate

    总结来说,SSH框架整合是Java Web开发中的一个重要选择,它利用Spring的控制反转和面向切面编程,Struts2的MVC模型,以及Hibernate的对象关系映射,为企业级应用开发提供了一套成熟的解决方案。导入这个整合包,...

    SSH框架整合的jar包

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。它们分别负责表现层、业务层和服务层的管理,构建了一个完整的MVC(Model-View-Controller)架构。下面将详细介绍这三...

    SSH 框架 struts-2.3.34 spring4.3.12 hibernate5.0.12

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了一种高效且强大的方式来构建企业级应用,它整合了模型-视图-控制器(MVC)设计模式、依赖注入(DI)...

    简单的SSH框架搭建包含测试方法(其中hibernate包含在Spring框架中)

    SSH框架是Java开发中常用的三大开源框架——Spring、Struts2和Hibernate的组合,它们各自负责应用程序的不同层面:Spring作为核心容器,管理组件和依赖注入;Struts2处理MVC模式中的视图与控制;Hibernate则专注于...

Global site tag (gtag.js) - Google Analytics