Skip to content

Commit 9293b26

Browse files
committed
Merge pull request #23672 from mdeinum
* pr/23572: Polish "Prefer JdbcTransactionManager over DataSourceTransactionManager" Prefer JdbcTransactionManager over DataSourceTransactionManager Closes gh-23672
2 parents 70ed778 + 5beeeac commit 9293b26

File tree

2 files changed

+13
-16
lines changed

2 files changed

+13
-16
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceTransactionManagerAutoConfiguration.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,11 @@
3030
import org.springframework.context.annotation.Configuration;
3131
import org.springframework.core.Ordered;
3232
import org.springframework.jdbc.core.JdbcTemplate;
33-
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
33+
import org.springframework.jdbc.support.JdbcTransactionManager;
3434
import org.springframework.transaction.TransactionManager;
3535

3636
/**
37-
* {@link EnableAutoConfiguration Auto-configuration} for
38-
* {@link DataSourceTransactionManager}.
37+
* {@link EnableAutoConfiguration Auto-configuration} for {@link JdbcTransactionManager}.
3938
*
4039
* @author Dave Syer
4140
* @author Stephane Nicoll
@@ -51,13 +50,13 @@ public class DataSourceTransactionManagerAutoConfiguration {
5150

5251
@Configuration(proxyBeanMethods = false)
5352
@ConditionalOnSingleCandidate(DataSource.class)
54-
static class DataSourceTransactionManagerConfiguration {
53+
static class JdbcTransactionManagerConfiguration {
5554

5655
@Bean
5756
@ConditionalOnMissingBean(TransactionManager.class)
58-
DataSourceTransactionManager transactionManager(DataSource dataSource,
57+
JdbcTransactionManager transactionManager(DataSource dataSource,
5958
ObjectProvider<TransactionManagerCustomizers> transactionManagerCustomizers) {
60-
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dataSource);
59+
JdbcTransactionManager transactionManager = new JdbcTransactionManager(dataSource);
6160
transactionManagerCustomizers.ifAvailable((customizers) -> customizers.customize(transactionManager));
6261
return transactionManager;
6362
}

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/DataSourceTransactionManagerAutoConfigurationTests.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import org.springframework.boot.autoconfigure.AutoConfigurations;
2626
import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration;
2727
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
28-
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
28+
import org.springframework.jdbc.support.JdbcTransactionManager;
2929
import org.springframework.transaction.TransactionManager;
3030

3131
import static org.assertj.core.api.Assertions.assertThat;
@@ -47,16 +47,16 @@ class DataSourceTransactionManagerAutoConfigurationTests {
4747

4848
@Test
4949
void transactionManagerWithoutDataSourceIsNotConfigured() {
50-
this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean(DataSourceTransactionManager.class));
50+
this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean(TransactionManager.class));
5151
}
5252

5353
@Test
5454
void transactionManagerWithExistingDataSourceIsConfigured() {
5555
this.contextRunner.withConfiguration(AutoConfigurations.of(DataSourceAutoConfiguration.class))
5656
.run((context) -> {
5757
assertThat(context).hasSingleBean(TransactionManager.class)
58-
.hasSingleBean(DataSourceTransactionManager.class);
59-
assertThat(context.getBean(DataSourceTransactionManager.class).getDataSource())
58+
.hasSingleBean(JdbcTransactionManager.class);
59+
assertThat(context.getBean(JdbcTransactionManager.class).getDataSource())
6060
.isSameAs(context.getBean(DataSource.class));
6161
});
6262
}
@@ -68,9 +68,8 @@ void transactionManagerWithCustomizationIsConfigured() {
6868
"spring.transaction.rollback-on-commit-failure=true")
6969
.run((context) -> {
7070
assertThat(context).hasSingleBean(TransactionManager.class)
71-
.hasSingleBean(DataSourceTransactionManager.class);
72-
DataSourceTransactionManager transactionManager = context
73-
.getBean(DataSourceTransactionManager.class);
71+
.hasSingleBean(JdbcTransactionManager.class);
72+
JdbcTransactionManager transactionManager = context.getBean(JdbcTransactionManager.class);
7473
assertThat(transactionManager.getDefaultTimeout()).isEqualTo(60);
7574
assertThat(transactionManager.isRollbackOnCommitFailure()).isTrue();
7675
});
@@ -93,9 +92,8 @@ void transactionWithMultipleDataSourcesIsNotConfigured() {
9392
@Test
9493
void transactionWithMultipleDataSourcesAndPrimaryCandidateIsConfigured() {
9594
this.contextRunner.withUserConfiguration(MultiDataSourceUsingPrimaryConfiguration.class).run((context) -> {
96-
assertThat(context).hasSingleBean(TransactionManager.class)
97-
.hasSingleBean(DataSourceTransactionManager.class);
98-
assertThat(context.getBean(DataSourceTransactionManager.class).getDataSource())
95+
assertThat(context).hasSingleBean(TransactionManager.class).hasSingleBean(JdbcTransactionManager.class);
96+
assertThat(context.getBean(JdbcTransactionManager.class).getDataSource())
9997
.isSameAs(context.getBean("test1DataSource"));
10098
});
10199
}

0 commit comments

Comments
 (0)