在测试类上使用@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 {
....
}
答案 0 :(得分:1)
TransactionalTestExecutionListener
是唯一创建交易的人。它检查@Transactional
注释的存在,然后打开事务。如果指定测试执行侦听器,则spring使用一些默认的测试执行侦听器,其中一个是TransactionalTestExecutionListener
,这就是为什么侦听器和注释似乎单独工作。