mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-09-17 12:09:16 +00:00
Merge pull request #51725 from quaff
Closes gh-51725 * patch-229: Polish "Align use of transaction manager in MongoDB support" Align use of transaction manager in MongoDB support
This commit is contained in:
+5
-4
@@ -49,6 +49,7 @@ import org.springframework.data.mongodb.MongoTransactionManager;
|
||||
import org.springframework.data.mongodb.core.MongoOperations;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.transaction.annotation.Isolation;
|
||||
|
||||
/**
|
||||
@@ -93,15 +94,15 @@ public final class BatchDataMongoAutoConfiguration {
|
||||
|
||||
private final MongoOperations mongoOperations;
|
||||
|
||||
private final MongoTransactionManager transactionManager;
|
||||
private final PlatformTransactionManager transactionManager;
|
||||
|
||||
private final @Nullable TaskExecutor taskExecutor;
|
||||
|
||||
private final BatchDataMongoProperties properties;
|
||||
|
||||
SpringBootBatchMongoConfiguration(MongoDatabaseFactory mongoDatabaseFactory,
|
||||
ObjectProvider<MongoTransactionManager> transactionManager,
|
||||
@BatchTransactionManager ObjectProvider<MongoTransactionManager> batchTransactionManager,
|
||||
ObjectProvider<PlatformTransactionManager> transactionManager,
|
||||
@BatchTransactionManager ObjectProvider<PlatformTransactionManager> batchTransactionManager,
|
||||
@BatchTaskExecutor ObjectProvider<TaskExecutor> batchTaskExecutor,
|
||||
BatchDataMongoProperties properties) {
|
||||
this.mongoOperations = createMongoOperations(mongoDatabaseFactory);
|
||||
@@ -124,7 +125,7 @@ public final class BatchDataMongoAutoConfiguration {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected MongoTransactionManager getTransactionManager() {
|
||||
protected PlatformTransactionManager getTransactionManager() {
|
||||
return this.transactionManager;
|
||||
}
|
||||
|
||||
|
||||
+9
-7
@@ -37,6 +37,7 @@ import org.springframework.data.mongodb.MongoDatabaseFactory;
|
||||
import org.springframework.data.mongodb.MongoTransactionManager;
|
||||
import org.springframework.data.mongodb.core.MongoExceptionTranslator;
|
||||
import org.springframework.data.mongodb.core.MongoOperations;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
@@ -70,9 +71,9 @@ class BatchDataMongoAutoConfigurationTests {
|
||||
|
||||
@Test
|
||||
void autConfigurationUsesMainTransactionManager() {
|
||||
MongoTransactionManager transactionManager = mock(MongoTransactionManager.class);
|
||||
PlatformTransactionManager transactionManager = mock(PlatformTransactionManager.class);
|
||||
this.contextRunner.withBean(MongoDatabaseFactory.class, this::mockMongoDatabaseFactory)
|
||||
.withBean(MongoTransactionManager.class, () -> transactionManager)
|
||||
.withBean(PlatformTransactionManager.class, () -> transactionManager)
|
||||
.run((context) -> assertThat(
|
||||
context.getBean(SpringBootBatchMongoConfiguration.class).getTransactionManager())
|
||||
.isSameAs(transactionManager));
|
||||
@@ -85,7 +86,7 @@ class BatchDataMongoAutoConfigurationTests {
|
||||
.withBean(MongoTransactionManager.class, () -> transactionManager)
|
||||
.withUserConfiguration(BatchTransactionManagerConfiguration.class)
|
||||
.run((context) -> {
|
||||
assertThat(context.getBeansOfType(MongoTransactionManager.class)).hasSize(2);
|
||||
assertThat(context.getBeansOfType(PlatformTransactionManager.class)).hasSize(2);
|
||||
assertThat(context.getBean(SpringBootBatchMongoConfiguration.class).getTransactionManager())
|
||||
.isSameAs(context.getBean("customTransactionManager"));
|
||||
});
|
||||
@@ -97,8 +98,9 @@ class BatchDataMongoAutoConfigurationTests {
|
||||
this.contextRunner.withBean(MongoDatabaseFactory.class, () -> mongoDatabaseFactory).run((context) -> {
|
||||
assertThat(context).doesNotHaveBean(MongoTransactionManager.class);
|
||||
assertThat(context.getBean(SpringBootBatchMongoConfiguration.class).getTransactionManager())
|
||||
.satisfies((mongoTransactionManager) -> assertThat(mongoTransactionManager.getDatabaseFactory())
|
||||
.isSameAs(mongoDatabaseFactory));
|
||||
.isInstanceOfSatisfying(MongoTransactionManager.class,
|
||||
(transactionManager) -> assertThat(transactionManager.getDatabaseFactory())
|
||||
.isSameAs(mongoDatabaseFactory));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -201,8 +203,8 @@ class BatchDataMongoAutoConfigurationTests {
|
||||
|
||||
@Bean
|
||||
@BatchTransactionManager
|
||||
MongoTransactionManager customTransactionManager() {
|
||||
return mock(MongoTransactionManager.class);
|
||||
PlatformTransactionManager customTransactionManager() {
|
||||
return mock(PlatformTransactionManager.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user