一、基于注解方式:
步骤:
1)导包
JdbcTemplate数据库包:
spring-jdbc-5.0.0.RELEASE.jar
spring-orm-5.0.0.RELEASE.jar
spring-tx-5.0.0.RELEASE.jar
切面控制的包:
com.springsource.net.sf.cglib-2.2.0.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
spring-aspects-5.0.0.RELEASE.jar
2)配置事务管理器
<bean id="transaction" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
//管理数据源
<property name="dataSource" ref="poolDataSource"></property>
</bean>
3)开启基于注解的事务控制模式
//transaction-manager属性配置事务管理器id
<tx:annotation-driven transaction-manager="transaction"/>
4)给事务方法添加@Transactional注解
二、基于xml配置的方式:
<!-- 配置事务管理器 -->
<bean id="manager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<constructor-arg name="dataSource" ref="comboPooledDataSource"></constructor-arg>
</bean>
<!--配置切面,事务增强 -->
<aop:config>
<aop:pointcut expression="execution(public * com.xzf.service.*.*(..))" id="pointCut"/>
<aop:advisor advice-ref="myAdvice" pointcut="pointCut"/>
</aop:config>
<!--事务建议,配置方法和属性-->
<tx:advice id="myAdvice" transaction-manager="manager">
<tx:attributes>
<tx:method name="checout" timeout="-1"/>
<tx:method name="get*" read-only="true"/>
</tx:attributes>
</tx:advice>