Spring4 Junit4测试:@TransactionConfiguration VS @Transactional,只使用一个或一起使用?

时间:2015-04-15 03:12:54

标签: spring transactions junit4

在我的junit测试案例中:

  1. 我在类或者只使用@transactional,每个测试方法都会回滚,因为每个方法都在运行一个事务。然后我在方法中添加它,然后指定的方法将回滚。

  2. 我在课堂上只使用@TransactionConfiguration(defaultRollback = true),但交易不起作用。

  3. 我在课堂上一起使用@transaction和@TransactionConfiguration(defaultRollback = true),也会回滚。

  4. 我的问题:

    1. 为什么回滚只能在课堂上使用@TransactionConfiguration?

    2. 我看到@transactional默认bean名称是事务管理器并且回滚为TRUE,所以我只在课堂上添加它而不是@TransactionConfiguration?

    3. @transactional必须注释,是@TransactionConfiguration只在多事务管理器案例中分配事务管理器吗?

2 个答案:

答案 0 :(得分:0)

  1. @transactional导致每个方法在事务中运行,您可以通过@transactional进行配置,隔离等。
  2. 您可以在多个TransactionManager中使用@TransactionManager配置事务管理器。因此,如果您只使用此批注,则交易无效。
  3. 因为要在事务中运行每个方法,所以可以使用@RollBack(false)更改它。

答案 1 :(得分:-1)

https://docs.spring.io/spring/docs/4.3.x/javadoc-api/org/springframework/test/context/transaction/TransactionConfiguration.html中,他们说@TransactionConfiguration是"已弃用"和#34;从Spring Framework 4.2开始,在类级别使用@Rollback或@Commit,在@Transactional"中使用transactionManager限定符。

相关问题