`

Spring事务托管的问题

 
阅读更多

关于spring的事务管理的:

<!--事务通知-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">  
    <tx:attributes>  
        <tx:method name="get*" read-only="true" />  
        <tx:method name="add*" propagation="REQUIRED" />
        <tx:method name="delete*" propagation="REQUIRED" />
        <tx:method name="update*" propagation="REQUIRED"/>
    </tx:attributes>  
</tx:advice>
 
<aop:config proxy-target-class="true">  
    <aop:pointcut id="serviceMethod" expression="execution(* com.mtea.mis.service.*Service.*(..))" />
    <!-- 通知器引用通知,切入点 -->
    <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" />  
</aop:config>

一般我们都会在业务逻辑层的指定方法进行事务环绕,若检测到有RuntimeException异常的抛出则事务回滚.
但是我有个疑问,一般业务逻辑层的操作出错了,我们都要记录一下日志,若记录的话,肯定是在catch块中是吧,但是
我如果catch住了exception的话,那么RuntimeException就不能再在业务逻辑层的方法往外抛了,若不往外抛的话,事务又回滚不了
这个问题不知道你是如何处理的啊 ?因此我想请教一下!!!

    public void updateAnyWithTrans()
    {
        try {
            UserType oldUserType=userTypeMapper.findById(1);
            oldUserType.setRemark("第6次remark");
            userTypeMapper.update(oldUserType);
            oldUserType.setRemark("第7次remark");
            userTypeMapper.update(oldUserType);
            throw new RuntimeException("测试异常");
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println("出错了");
        }
    }

分享到:
评论

相关推荐

    Spring2(源码)

    - 通过Transaction Management模块,Spring实现了声明式事务管理,使事务控制更为便捷。 7. **Spring AOP中的切面** - 切面由通知(advice)、切点(pointcut)、连接点(join point)和织入(weaving)组成。 -...

    mybatis-spring-1.3.3.jar官方下载

    它负责配置 MyBatis 的配置文件、环境信息、数据源等,并为 Spring 容器提供一个可以托管的 SqlSessionFactory 实例。 3. **MapperScannerConfigurer**:这个类用于扫描指定包下的 Mapper 接口,并自动将其注册到 ...

    spring-torque-tx:Apache Torque 与 Spring 事务管理的轻量级集成

    一旦检测到在托管数据源上运行 spring 事务,它会自动禁止 Torque 自己的事务处理。 这样事务边界由 Spring 严格控制。 只有通过 Torque API 引发的回滚才会将 spring 事务标记为回滚。 为了创建事务,Spring 中的...

    Spring-Reference_zh_CN(Spring中文参考手册)

    1. 简介 1.1. 概览 1.2. 使用场景 2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 ...15.5.1. 注入 Spring 托管的 beans 15.5.1.1. 将 Spring Beans 注入到 Tapestry ...

    spring5.0源码下载==> spring-framework.7z

    2. **源码克隆**:从 GitHub 或其他源码托管平台克隆 Spring 源码仓库。 3. **构建**:使用 Maven 的 `mvn clean install` 命令编译源码,这将下载所有依赖并构建项目。 4. **测试**:执行 `mvn test` 来运行单元...

    Spring.Net开发WebService

    - 配置IIS或其他Web服务器以托管Spring.NET Web服务。 7. **性能优化**: - 考虑使用WCF(Windows Communication Foundation)绑定和传输优化,以提高Web服务性能。 - 使用缓存策略减少不必要的数据库查询,提升...

    Spring 2.0 开发参考手册

    15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - MVC中的C 16.1.2. 视图 - MVC中的V 16.1.3. Web作用范围的Bean 16.2. DispatcherPortlet ...

    spring源代码下载地址

    首先,Spring源代码的下载对于深入理解其工作原理、自定义扩展或排查问题至关重要。在描述中提到的"Spring源代码的下载地址",通常是指Spring官方仓库或者第三方镜像站点。Spring的源代码托管在GitHub上,你可以访问...

    Spring与Struts 2整合.zip

    可以使用`&lt;spring:bean&gt;`标签或`struts-plugin.xml`中的`&lt;struts:spring-plugin&gt;`来实现Action的Spring托管。 4. **事务管理**:通过Spring的AOP配置,可以声明式地管理事务,如`@Transactional`注解,这样在Action...

    JSF与Spring完美结合

    JSF主要用于构建用户界面,而Spring则提供全面的企业级应用支持,包括依赖注入、事务管理、安全控制等。当这两者结合时,可以创建出功能强大且灵活的Web应用程序。下面将详细介绍如何实现JSF与Spring的完美集成,...

    SpringFramework5.0.x源码学习笔记.pdf

    Spring源码托管在GitHub上,可通过Git命令行或者Git客户端软件(例如SmartGit)进行源码的克隆操作。源码下载后,需要导入到IntelliJ IDEA中,完成这一操作的详细步骤也在文档中得到了展示。 在理解了如何搭建学习...

    Flex、Spring整合:blazeds

    在Flex和Spring整合中,BlazeDS作为桥梁,使得Flex客户端可以透明地访问Spring托管的bean和服务。下面是一些关键步骤: 1. **配置BlazeDS**:在服务器端,你需要在Spring应用上下文中配置BlazeDS的...

    Struts Spring Hibernate整合实践

    - 创建 Spring 的配置文件,定义需要托管的 Bean,包括Action、Service、DAO等,可以利用@Autowired注解自动注入依赖。 - 用户登录和注册功能的实现,通常涉及到Action处理请求,Service处理业务逻辑,以及...

    Spring中文帮助文档

    15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - MVC中的C 16.1.2. 视图 - MVC中的V 16.1.3. Web作用范围的Bean 16.2. DispatcherPortlet...

    spring+cxf小demo

    AOP则提供了一种模块化处理横切关注点的方式,如日志、事务管理等。 首先,我们需要在Spring配置文件中定义服务接口和服务实现。服务接口定义了Web服务的公共方法,而服务实现提供了具体的功能实现。例如,我们可能...

    spring chm文档

    15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - MVC中的C 16.1.2. 视图 - MVC中的V 16.1.3. Web作用范围的Bean 16.2. DispatcherPortlet ...

    spring hibernate struts整合开发实例

    - **Declarative transactions**:Spring支持声明式事务管理,即通过XML配置或注解来声明事务的边界,无需在代码中显式管理事务的开始、提交和回滚。 3. **Struts-Spring-Hibernate集成**: - **环境搭建与基本...

    Spring 2.0 + Struts 1.2 + Hibernate 3.2 + DWR 2.0 的JavaEE应用示例

    总结,该例示注释非常详细,演示Spring托管Hibernate和Struts的Action, 以及Spring的事务声明(包括1.x与2.x的用法)与非事务声明的使用方式。 使用DWR可以方便的使用Spring托管的持久层功能。 目的:希望广大Java...

    Spring API

    15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - MVC中的C 16.1.2. 视图 - MVC中的V 16.1.3. Web作用范围的Bean 16.2. DispatcherPortlet ...

    Spring5.1中文参考指南.pdf

    - **事务管理介绍**:Spring提供的事务管理模块。 - **DAO支持** - **DAO支持概述**:Spring提供了对数据访问层的支持。 - **JDBC** - **选择JDBC数据库访问方法**:Spring支持多种JDBC访问方式。 - **包层次...

Global site tag (gtag.js) - Google Analytics