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个或多个参数
Spring、Ibatis的事物框架配置
最新推荐文章于 2024-05-31 10:46:10 发布