ОК, я понял это.Ответ на этот вопрос двоякий.Во-первых, расширение AbstractTransactionalJUnit4SpringContextTests
не будет работать.Это связано с тем, что для создания SimpleJdbcTemplate
для проверки данных с помощью простых запросов JDBC в тесте необходим единый источник данных.Поскольку я не использую эту функцию в этом тесте, я мог бы заменить extends AbstractTransactionalJUnit4SpringContextTests
на следующую конфигурацию:
@ContextConfiguration(locations = "classpath:applicationContext.xml")
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({
DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class,
TransactionalTestExecutionListener.class
})
@Transactional
public class IntegrationTest {
...
}
Комбинация этих аннотаций дает те же настройки, что и расширение AbstractTransactionalJUnit4SpringContextTests
.
Во второй части было понимание того, что, поскольку у меня есть три источника данных, мне также нужны все три, поэтому на них должна ссылаться одна и та же PlatformTransactionManager
.Я распределил транзакции.Это невозможно с DataSourceTransactionManager
, поэтому мне пришлось использовать JtaTransactionManager
.