`
vicky_luo
  • 浏览: 19434 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

SSH框架事务管理两种方式

阅读更多
一:声明切面好处是该方法所在类不需要实现任何接口!
<!--   定义事务管理器,使用适用于Hibernte的事务管理器-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
    <!-- 模糊匹配需要拦截的方法 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">

<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="search*" read-only="true" />
<tx:method name="save*" propagation="REQUIRED"
rollback-for="Exception" />
<tx:method name="update*" propagation="REQUIRED"
rollback-for="Exception" />
<tx:method name="delete*" propagation="REQUIRED"
rollback-for="Exception" />
</tx:attributes>
</tx:advice>

    <!-- 切面配置 -->
<aop:config>
<!-- 模糊匹配需要拦截的包 -->
<aop:pointcut id="etAop"
expression="execution(* com.qq.*.model.service.*.*(..)) or execution(* com.qq.common.action.*.*(..))" />

<aop:advisor advice-ref="txAdvice" pointcut-ref="etAop" />
</aop:config>
一:元注释好处是配置简单!
<!-- 事务管理器配置, Hibernate单数据源事务 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
   
    <!-- 使用annotation定义事务 -->
    <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />

在接口或类的声明处 ,写一个@Transactional.适用于类中所有的public的方法
事物传播行为介绍:
@Transactional(propagation=Propagation.REQUIRED)
如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)
@Transactional(propagation=Propagation.NOT_SUPPORTED)
容器不为这个方法开启事务
@Transactional(propagation=Propagation.REQUIRES_NEW)
不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
@Transactional(propagation=Propagation.MANDATORY)
必须在一个已有的事务中执行,否则抛出异常
@Transactional(propagation=Propagation.NEVER)
必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)
@Transactional(propagation=Propagation.SUPPORTS)
如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.
分享到:
评论

相关推荐

    SSH框架整合入门helloworld两种事务管理方式(失败的自己)

    6. **配置Spring事务管理**:有两种方式: - **编程式事务管理**:在Service层的业务方法中手动管理事务的开启、提交和回滚。这种方式灵活,但代码侵入性强,不便于维护。 - **声明式事务管理**:通过在XML配置...

    在SSH框架中加入事务支持

    在SSH框架中,Spring是主要负责事务管理的组件,它提供了编程式和声明式两种事务管理方式。 **声明式事务管理**是Spring提供的强大特性,它允许开发者通过配置XML或注解来定义事务边界,无需在代码中显式处理。在...

    带事务的ssh框架源代码

    在事务管理方面,Spring支持编程式和声明式两种方式。编程式事务管理需要在代码中显式地开始、提交、回滚事务,而声明式事务管理则更加灵活,只需在配置文件中声明事务属性,Spring会自动管理事务的生命周期。 在...

    ssh框架信息管理系统

    SSH框架信息管理系统是一种基于Java技术开发的企业级应用框架,它由Spring、Struts和Hibernate三个开源组件集成而成。这三个框架分别负责不同的职责,Spring作为应用的底层架构,提供依赖注入和面向切面编程的能力;...

    ssh框架编写的一个用户管理系统

    这个用户管理系统就是基于SSH框架构建的,旨在提供一个实用的学习平台,帮助开发者熟悉SSH框架的运用。 首先,Struts2是MVC(模型-视图-控制器)设计模式的一种实现,它负责处理用户的请求,控制业务流程,并将数据...

    SSH框架图书管理系统

    **SSH框架图书管理系统详解** SSH框架,全称为Struts2、Spring、Hibernate的组合,是Java Web开发中常用的一种技术栈。在这个系统中,Struts2负责控制层,Spring负责业务层和依赖注入,Hibernate则处理数据持久化层...

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

    在Spring中配置事务,通常有编程式和声明式两种方式。编程式事务管理需要开发者显式调用开始、提交、回滚等事务方法,而声明式事务管理则更加简洁,只需在配置文件或注解中声明事务属性,如事务的传播行为、隔离级别...

    ssh框架 教材管理系统

    这个"SSH框架 教材管理系统"项目是利用SSH框架实现的一个具体应用,主要用于教育机构进行教材的管理和相关事务处理。下面我们将深入探讨SSH框架的各个组件以及在教材管理系统中的应用。 1. **Struts2**:Struts2是...

    SSH框架架包

    2. **灵活的事务管理**:Spring的事务管理支持编程式和声明式两种方式,可以灵活控制事务边界。 3. **便捷的数据访问**:Hibernate使得数据库操作变得简单,通过对象模型可以直接操作数据,无需关心底层SQL语句。 4....

    SSH框架中的多数据源配置.DOC

    多数据源配置是SSH框架中的一种重要配置方式。它能够使得应用程序连接多个数据库,实现数据的集成和共享。同时,它也能够提高应用程序的灵活性和可扩展性。 多数据源配置的知识点包括: * SSH框架中的多数据源配置...

    SSH框架详细解析

    SSH框架,全称为Struts+Spring+Hibernate,是一种常见的Java Web开发开源框架组合。这个框架的集成使得开发者能够在短时间内构建出结构清晰、可复用性强、易于维护的Web应用程序。 Struts是SSH中的MVC(Model-View-...

    在SSH框架Spring的作用

    SSH框架,即Struts+Spring+Hibernate框架,是Java Web开发中的一种流行架构,它将三种技术结合在一起,各自承担不同的职责,共同构建出稳定、高效、易于维护的Web应用程序。 ### Spring在SSH框架中的核心角色 在...

    完整ssh框架详细项目

    这意味着项目配置了两种数据库适配器,能够灵活切换不同的数据库环境。 在压缩包中的`xproduct`可能是项目的核心模块或主程序入口,包含了整个SSH框架的配置文件、实体类、持久化层(DAO)、业务逻辑层(Service)...

    SSH笔记-事务管理

    Spring提供两种方式来配置事务管理:一种是通过注解,另一种是通过XML配置。 1. **注解式事务管理**: Spring支持在方法级别使用@Transactional注解来声明事务边界。当标记在类或方法上时,Spring会自动检测并管理...

    ssh.zip_SSH框架_ssh_ssh 框架

    **SSH框架整合**:在SSH框架集成中,Spring作为核心,负责管理和协调其他两个框架。Struts2的Action类通常会通过Spring进行依赖注入,而Hibernate的SessionFactory也是由Spring管理。此外,Spring可以整合AOP,用于...

    ssh框架.doc

    除了上述的基本概念和关系映射,SSH框架中的另外两个组件——Spring和Struts,同样至关重要。Spring是一个全面的后端应用框架,它提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等众多功能。Spring可以帮助...

    java ssm ssh框架学习

    Java SSM和SSH框架是两种常见的企业级Java开发框架,它们在现代Web应用程序开发中扮演着重要的角色。SSM框架组合了Spring、Struts2和MyBatis,而SSH框架则由Spring、Struts2和Hibernate组成。这两个框架都是为了简化...

    基于SSH框架的智能停车系统(服务器与客户端)

    在Web开发中,Spring MVC作为Spring的一个模块,提供了一种组织和构建Web应用程序的方式,与Struts2类似,但更灵活和轻量级。 3. **Hibernate**:Hibernate是一个强大的ORM框架,它简化了Java应用与数据库之间的...

    SSH框架与SSI框架的区别-配置说明

    SSH 框架与 SSI 框架是两种常见的 Web 应用程序框架,它们之间有着很大的区别,本文将通过配置说明来详细阐述这两个框架的差异。 首先,让我们来看一下 SSH 框架的配置文件。SSH 框架使用 Spring 框架作为其基础...

Global site tag (gtag.js) - Google Analytics