1、在做事物控制前,先检查所用的包是否已经加载进来
aspectjrt-1.5.4.jar aspectjweaver-1.6.2.jar cglib-nodep-2.1_3-osgi.jar
2、在Spring配置数据源的配置文件中加入如下配置
<!-- 数据库连接配置 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
<property name="username" value="QHUSER"></property>
<property name="password" value="oracle"></property>
<property name="initialSize" value="5" />
<property name="maxActive" value="20" />
<property name="maxIdle" value="30" />
<property name="maxWait" value="1000" />
<property name="poolPreparedStatements" value="false" />
<!--property name="maxOpenPreparedStatements" value="3" /-->
<property name="testOnBorrow" value="true"/>
<property name="validationQuery" value="select * from dual"/>
<property name="defaultAutoCommit" value="true" />
</bean>
<!--配置事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--配置哪些方法,什么情况下需要回滚-->
<tx:advice id="serviceAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!--当代理的service层中的方法抛出异常的时候才回滚,必须加rollback-for参数-->
<tx:method name="add*" propagation="REQUIRED" rollback-for="Throwable"/>
<tx:method name="del*" propagation="REQUIRED" rollback-for="Throwable"/>
<tx:method name="update*" propagation="REQUIRED" rollback-for="Throwable"/>
<tx:method name="create*" propagation="REQUIRED" rollback-for="Throwable"/>
<!--除了上面标识的方法,其他方法全是只读方法-->
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 配置系统中哪些方法中启用事物控制 -->
<aop:config>
<aop:pointcut id="servicePointcut" expression="execution(* com.vip.core.service..*.*(..))"/>
<aop:advisor pointcut-ref="servicePointcut" advice-ref="serviceAdvice"/>
</aop:config>
expression="execution(* *..*Service.*(..))"
第一个* 表示任意返回值类型
第二个* 表示以任意名字开头的package. 如 com.xx.
第三个* 表示以任意名字开头的class的类名 如TestService
第四个* 表示 通配 *service下的任意class
最后二个.. 表示通配 方法可以有0个或多个参数
分享到:
相关推荐
【SSI框架搭建实例教程(struts spring ibatis整合 附切面事物处理)】 在软件开发中,集成多种框架可以提高应用程序的灵活性和可维护性。SSI框架是指Struts、Spring和iBatis的集成,这三种框架分别负责MVC模式中的...
Struts1.2、Spring2.0和Ibatis2.0是Java开发中经典的三大开源框架,它们在企业级应用开发中广泛使用。这个小项目是将这三个框架整合在一起,以实现一个简单但完整的功能。下面我们将深入探讨这些知识点。 **Struts...
压缩包文件名"spring-ibatis-transaction"表明内容可能与Spring和MyBatis框架的集成有关,特别是它们之间的事务管理。MyBatis是一个轻量级的持久层框架,而Spring可以帮助我们管理MyBatis的事务。在Spring中,可以...
在压缩包子文件的文件名称列表中,"Test_spring_ibatis"可能是一个测试项目,结合了Spring和MyBatis这两个框架。MyBatis是一个轻量级的持久层框架,它允许开发者通过XML或注解定义SQL语句,然后在Spring中通过...
1. **简介**:解释了Ibatis的基本理念,即SQL映射框架,以及它如何与Spring等其他框架集成。 2. **安装与配置**:介绍了如何将Ibatis纳入到Java项目中,包括Maven依赖的添加、配置文件的设置等。 3. **...
Spring框架是Java开发领域中最重要的技术之一,它是一个开源的轻量级框架,提供了全面的编程和配置模型。Spring框架的核心特性包括依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问抽象等。本杂谈将围绕...
Spring+iBatis+Atomikos实现JTA事务的例子,展示了如何结合使用Spring、iBatis和开源的Atomikos事务管理器来支持全局事务。Spring与Hibernate整合时,也可以配置多数据库事务,确保在操作多个数据库时的事务一致性。...
轻量级J2EE实现通过使用ORM框架(如Hibernate、iBatis)和AOP框架(如Spring)来增强功能性和灵活性。ORM框架提供数据持久化能力,简化了数据访问逻辑,提高了代码的可读性和可维护性。AOP框架允许在不侵入业务代码...
- **起源与发展**:Struts2并非新生事物,而是建立在Struts1和WebWork基础上的一个Web应用框架。它融合了两者的优势,提供了更为强大的功能支持。 - **设计理念**:采用MVC(Model-View-Controller)架构模式,将...
- **精通Java框架**:包括MVC思想、Struts、Hibernate和Spring框架,以及基本的设计模式。 - **数据库管理能力**:掌握SQL语言,熟悉Oracle和MsSql等关系型数据库的使用。 - **开源项目知识**:了解webwork、ibatis...
- **起源与发展**:Struts2并非新生事物,而是建立在Struts1和WebWork基础上的一个Web应用框架。它融合了两者的优势,提供了更为强大的功能支持。 - **设计理念**:以WebWork的设计思想为核心,继承Struts1的优点,...
架构师不得不知道的Spring事物不能回滚的深层次原因.mp4 │ │ │ ├─13.RPC底层通讯原理之Netty线程模型源码分析 │ │ 13.RPC底层通讯原理之Netty线程模型源码分析.wmv │ │ │ ├─14.分库分表之后分布式下...
8. spring如何实现事物管理的。 Spring提供了多种事务管理机制,例如使用@Transactional注解或使用PlatformTransactionManager接口。 9. springIOC。 Spring IOC是Spring框架的核心组件,提供了依赖注入和控制反转...