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:method name="*" propagation="REQUIRED" rollback-for="java.lang.Exception"/> <tx:method name="preCommitTaskitem" propagation="NEVER"/> <tx:method name="preStartProcess" propagation="NEVER"/> <tx:method name="isDisplayPostNode" propagation="NEVER"/> --> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="allMethod" expression="execution(* com.student.service.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="allMethod" /> </aop:config>
其中更新等操作必须开启事务,若抛出Exception,则要求事务回滚。需要注意以下两点:
1、在service中,如果Exception被try、catch处理后,则Aop将不会再进行回滚处理。
2、service中的异常不能直接抛出去,Spring的Aop不识别java.lang.Exception,需要在service中重新抛出runtineException才可触发事务回滚。代码如下:
@Service public class StudentService { @Autowired StudentDao studentDao; public Student add(Student student) throws RuntimeException { studentDao.add(student); studentDao.add(student); throw new RuntimeException("1"); } }
相关推荐
### Spring AOP 实现流程日志跟踪 #### 一、背景与目的 在现代软件开发过程中,为了确保系统的稳定性和可维护性,通常会引入非功能性的需求来增强应用程序的功能,比如日志记录、安全控制等。这些需求往往不是业务...
spring3.2+strut2+hibernate4 注解方式。 spring.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
在本项目中,我们将深入探讨Struts1.3、Hibernate3.2和Spring2.5的整合开发,以及如何在其中加入事务管理。 Struts1.3作为MVC(Model-View-Controller)框架,主要负责控制层的任务,它通过ActionServlet接收HTTP...
面向切面编程(AOP)作为一种补充技术,能够更好地处理横切关注点,如事务管理、日志记录等,从而简化了程序设计。Spring框架作为Java领域的一个重量级框架,其AOP模块提供了强大的支持,使得开发者能够在不修改核心...
Spring提供了强大的事务管理能力,可以轻松地集成到现有的代码中。 **4.1 配置事务管理** 在`applicationContext.xml`中配置事务管理器,并定义事务规则。 ```xml <!-- applicationContext.xml 事务管理配置示例 ...
Spring框架的核心特性包括依赖注入(DI)、面向切面编程(AOP)以及各种模块化的支持,如Web MVC、事务管理、数据访问等。 **3.2 POI与Spring的集成方式** - **使用Spring管理POI对象:** 在Spring容器中定义POI...
Spring 支持两种事务管理方式:容器管理和编程式管理。容器管理通过 AOP 实现,通常更加方便,适用于大多数情况。 ##### 4.3 编程式事务管理 对于需要更精细控制的情况,可以使用编程式事务管理。这种方式需要在...
Spring提供了对Hibernate的支持,包括事务管理和Session管理等。 #### 结论 通过上述分析,我们可以看到Spring、Hibernate和Struts这三个技术框架各自的优势以及它们之间的互补性。结合使用这些框架,可以构建出既...
它利用了Spring的配置管理和事务管理能力、Struts的MVC模式以及Hibernate的对象关系映射特性,实现了高效稳定的分页功能。在实际开发中,可以根据具体需求调整这些类和接口的设计,以更好地满足项目的要求。
- **Spring2**:一个轻量级的控制反转(IoC)和面向切面(AOP)容器,可以管理整个应用程序的生命周期,实现业务逻辑与底层服务的解耦。 - **Hibernate3**:一个全功能的对象关系映射框架,能够将Java对象映射到...
Struts+Spring+Hibernate实现上传下载 本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本: •Struts 1.2 •Spring 1.2.5 •Hibernate 3.0 本文...
- **面向切面编程(AOP):** 提供了强大的面向切面编程能力,可以用来实现日志记录、事务管理等功能。 **5.2 MyBatis:** - **ORM映射:** 通过配置文件或注解的方式,实现对象与数据库表之间的映射。 **5.3 ...
- **事务管理**:提供声明式事务管理。 ##### 9.2 SpringMVC框架 - **控制器**:处理用户请求并返回视图。 - **视图解析器**:将视图名称解析为实际的视图对象。 - **前端控制器**:作为请求的唯一入口点。 #####...
它允许我们在运行时动态地创建接口的代理类,从而可以在调用目标方法前后添加额外的功能,如日志记录、事务管理等。 ##### 3.1 动态代理原理 - **接口**:目标对象必须实现接口,因为Java动态代理是基于接口的。 -...
- `Exception`与`Error`的区别。 - 自定义异常的创建方法。 - `try-catch-finally`语句块的使用。 - `throws`关键字的作用。 - `Throwable`类中的方法如`printStackTrace()`的用途。 - **面试考察要点:** - ...
254 15.3 依赖注入 259 15.3.1 Constructor注入 259 15.3.2 Setter注入 261 15.3.3 Method注入 263 15.4 Spring AOP技术 266 15.4.1 装备(advices) 267 15.4.2 Spring AOP的传统用法 275 15.4.3 基于@AspectJ注释...
{7.1}Java的文件系统管理}{103}{section.7.1} {7.2}回调模式与FileFilter}{104}{section.7.2} {7.3}\ttfamily RandomAccessFile}{106}{section.7.3} {7.4}基本类型数据序列化}{108}{section.7.4} {7.5}String的...