关于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("出错了");
}
}
分享到:
相关推荐
- 通过Transaction Management模块,Spring实现了声明式事务管理,使事务控制更为便捷。 7. **Spring AOP中的切面** - 切面由通知(advice)、切点(pointcut)、连接点(join point)和织入(weaving)组成。 -...
它负责配置 MyBatis 的配置文件、环境信息、数据源等,并为 Spring 容器提供一个可以托管的 SqlSessionFactory 实例。 3. **MapperScannerConfigurer**:这个类用于扫描指定包下的 Mapper 接口,并自动将其注册到 ...
一旦检测到在托管数据源上运行 spring 事务,它会自动禁止 Torque 自己的事务处理。 这样事务边界由 Spring 严格控制。 只有通过 Torque API 引发的回滚才会将 spring 事务标记为回滚。 为了创建事务,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 ...
2. **源码克隆**:从 GitHub 或其他源码托管平台克隆 Spring 源码仓库。 3. **构建**:使用 Maven 的 `mvn clean install` 命令编译源码,这将下载所有依赖并构建项目。 4. **测试**:执行 `mvn test` 来运行单元...
- 配置IIS或其他Web服务器以托管Spring.NET Web服务。 7. **性能优化**: - 考虑使用WCF(Windows Communication Foundation)绑定和传输优化,以提高Web服务性能。 - 使用缓存策略减少不必要的数据库查询,提升...
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的源代码托管在GitHub上,你可以访问...
可以使用`<spring:bean>`标签或`struts-plugin.xml`中的`<struts:spring-plugin>`来实现Action的Spring托管。 4. **事务管理**:通过Spring的AOP配置,可以声明式地管理事务,如`@Transactional`注解,这样在Action...
JSF主要用于构建用户界面,而Spring则提供全面的企业级应用支持,包括依赖注入、事务管理、安全控制等。当这两者结合时,可以创建出功能强大且灵活的Web应用程序。下面将详细介绍如何实现JSF与Spring的完美集成,...
Spring源码托管在GitHub上,可通过Git命令行或者Git客户端软件(例如SmartGit)进行源码的克隆操作。源码下载后,需要导入到IntelliJ IDEA中,完成这一操作的详细步骤也在文档中得到了展示。 在理解了如何搭建学习...
在Flex和Spring整合中,BlazeDS作为桥梁,使得Flex客户端可以透明地访问Spring托管的bean和服务。下面是一些关键步骤: 1. **配置BlazeDS**:在服务器端,你需要在Spring应用上下文中配置BlazeDS的...
- 创建 Spring 的配置文件,定义需要托管的 Bean,包括Action、Service、DAO等,可以利用@Autowired注解自动注入依赖。 - 用户登录和注册功能的实现,通常涉及到Action处理请求,Service处理业务逻辑,以及...
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...
AOP则提供了一种模块化处理横切关注点的方式,如日志、事务管理等。 首先,我们需要在Spring配置文件中定义服务接口和服务实现。服务接口定义了Web服务的公共方法,而服务实现提供了具体的功能实现。例如,我们可能...
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 ...
- **Declarative transactions**:Spring支持声明式事务管理,即通过XML配置或注解来声明事务的边界,无需在代码中显式管理事务的开始、提交和回滚。 3. **Struts-Spring-Hibernate集成**: - **环境搭建与基本...
总结,该例示注释非常详细,演示Spring托管Hibernate和Struts的Action, 以及Spring的事务声明(包括1.x与2.x的用法)与非事务声明的使用方式。 使用DWR可以方便的使用Spring托管的持久层功能。 目的:希望广大Java...
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提供的事务管理模块。 - **DAO支持** - **DAO支持概述**:Spring提供了对数据访问层的支持。 - **JDBC** - **选择JDBC数据库访问方法**:Spring支持多种JDBC访问方式。 - **包层次...