标签:简单 java 单元 文件 with XML jdb ref oid
1. 步骤一:恢复转账的开发环境(具体开发环境实现见:https://www.cnblogs.com/wyhluckdog/p/10137283.html)
2. 步骤二:applicationContext的基本配置为:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql:///spring-day03"/> <property name="user" value="root"/> <property name="password" value="root"/> </bean> </beans>
3. 步骤三:
配置事务管理器
<!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean>
4. 步骤四:
开启注解事务
<!-- 开启注解事务 --> <tx:annotation-driven transaction-manager="transactionManager"/>
5.完整的applicationContext.xml配置文件的配置信息为:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql:///spring-day03"/> <property name="user" value="root"/> <property name="password" value="root"/> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 开启注解事务 --> <tx:annotation-driven transaction-manager="transactionManager"/> <bean id="accountDao" class="com.huida.demo1.AccountDaoImpl"> <property name="dataSource" ref="dataSource"/> </bean> <bean id="accountService" class="com.huida.demo1.AccountServiceImpl"> <property name="accountDao" ref="accountDao"/> <!-- <property name="transactionTemplate" ref="transactionTemplate"/> --> </bean> </beans>
6.步骤五:
在业务层上添加一个注解:@Transactional。
* 以下是AccountServiceImpl的完整代码为:
package com.huida.demo1; import javax.annotation.Resource; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.TransactionCallbackWithoutResult; import org.springframework.transaction.support.TransactionTemplate; @Transactional public class AccountServiceImpl implements AccountService{ @Resource(name="accountDao") private AccountDaoImpl accountDao; public void setAccountDao(AccountDaoImpl accountDao) { this.accountDao = accountDao; } @Override public void pay(String out,String in,double money) { //扣钱 accountDao.outMoney(out, money); //加钱 accountDao.inMoney(in, money); } }
7. 步骤六:编写测试类
package com.huida.demo1; import javax.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") public class Demo1 { @Resource(name="accountService") private AccountService accountService; @Test public void run1(){ accountService.pay("小明","小红",1000); } }
8.单元测试run1方法,刷新spring-day03数据库中的user表,可以看到小明的money减少了1000,小红的money增加了1000.
Spring框架的事务管理之基于AspectJ的注解方式(重点掌握,最简单的方式)
标签:简单 java 单元 文件 with XML jdb ref oid
原文地址:https://www.cnblogs.com/wyhluckdog/p/10137848.html