2

@Transactional使用测试类上的注释启用事务和使用测试侦听器启用事务之间有什么区别@TestExecutionListeners(TransactionalTestExecutionListener.class)吗?

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
@Transactional
public class MyTestClass {
....
}

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
@TestExecutionListeners(TransactionalTestExecutionListener.class)
public class MyTestClass {
....
}
4

1 回答 1

1

TransactionalTestExecutionListener是唯一创建交易的人。它检查@Transactional注释的存在,然后打开事务。如果指定了测试执行侦听器,spring 会使用一些默认的测试执行侦听器,其中之一是TransactionalTestExecutionListener,这就是为什么侦听器和注释似乎分开工作的原因。

于 2013-11-07T18:49:22.357 回答