Spring Test @TransactionConfiguration
来源:原创 发布时间:2015-04-20 归档:spring-test
开发环境 :
JDK 7
Maven 3
Junit 4.11
Spring 4.1.5
MySQL 5.5
Eclipse Luna
继 Spring Test Transactional @Rollback 一文, 下面再介绍一种事务管理的方式。
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("/beans.xml") @Transactional @TransactionConfiguration public class EmployeeDaoImplTest { @Autowired private EmployeeDao employeeDao; @Test public void testInsert() { Employee employee = new Employee(); employee.setAge(20); employee.setName("店小四"); employee.setMail("dianxiaosi@yeah.net"); boolean successful = employeeDao.insert(employee); assertThat(successful, is(true)); } }
@TransactionConfiguration 是 @TransactionConfiguration(defaultRollback = true) 的简写。@TransactionConfiguration 能够管理类范围内的事务, 与 @Rollback 一样, 它也需要 @Transactional 标注的支持, 否则事务不受 @TransactionConfiguration 的控制。
@TransactionConfiguration 可以与 @Rollback 注解共同工作, 如上面的测试用例, 事务虽然是受 @TransactionConfiguration 控制回滚不提交, 但如果你想提交某一个方法的事务, 你可以通过 @Rollback(false) 来控制提交事务。
执行测试, 数据库不会插入数据, 如果将 @TransactionConfiguration 改为 @TransactionConfiguration(defaultRollback = false), 则数据库插入一条记录。
@TransactionConfiguration 可以与 @Rollback 注解共同工作, 如上面的测试用例, 事务虽然是受 @TransactionConfiguration 控制回滚不提交, 但如果你想提交某一个方法的事务, 你可以通过 @Rollback(false) 来控制提交事务。
执行测试, 数据库不会插入数据, 如果将 @TransactionConfiguration 改为 @TransactionConfiguration(defaultRollback = false), 则数据库插入一条记录。
示例代码下载