Skip to content

Commit 6c1b46e

Browse files
committed
Mark auto-configured JdbcTemplate as primary
This commit marks the auto-configured `JdbcTemplate` as `Primary`. Spring session creates its own so we could end up with two in a fully auto configured context. Closes gh-6717
1 parent e465368 commit 6c1b46e

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
2626
import org.springframework.context.annotation.Bean;
2727
import org.springframework.context.annotation.Configuration;
28+
import org.springframework.context.annotation.Primary;
2829
import org.springframework.jdbc.core.JdbcOperations;
2930
import org.springframework.jdbc.core.JdbcTemplate;
3031
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
@@ -53,12 +54,14 @@ public JdbcTemplateAutoConfiguration(DataSource dataSource) {
5354
}
5455

5556
@Bean
57+
@Primary
5658
@ConditionalOnMissingBean(JdbcOperations.class)
5759
public JdbcTemplate jdbcTemplate() {
5860
return new JdbcTemplate(this.dataSource);
5961
}
6062

6163
@Bean
64+
@Primary
6265
@ConditionalOnMissingBean(NamedParameterJdbcOperations.class)
6366
public NamedParameterJdbcTemplate namedParameterJdbcTemplate() {
6467
return new NamedParameterJdbcTemplate(this.dataSource);

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/SessionAutoConfiguration.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
2828
import org.springframework.boot.autoconfigure.hazelcast.HazelcastAutoConfiguration;
2929
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
30+
import org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration;
3031
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
3132
import org.springframework.boot.autoconfigure.session.SessionAutoConfiguration.SessionConfigurationImportSelector;
3233
import org.springframework.boot.autoconfigure.session.SessionAutoConfiguration.SessionRepositoryValidator;
@@ -54,7 +55,8 @@
5455
@ConditionalOnWebApplication
5556
@EnableConfigurationProperties(SessionProperties.class)
5657
@AutoConfigureAfter({ DataSourceAutoConfiguration.class, HazelcastAutoConfiguration.class,
57-
MongoAutoConfiguration.class, RedisAutoConfiguration.class })
58+
JdbcTemplateAutoConfiguration.class, MongoAutoConfiguration.class,
59+
RedisAutoConfiguration.class })
5860
@Import({ SessionConfigurationImportSelector.class, SessionRepositoryValidator.class })
5961
public class SessionAutoConfiguration {
6062

spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/SessionAutoConfigurationJdbcTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.springframework.beans.DirectFieldAccessor;
2626
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
2727
import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration;
28+
import org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration;
2829
import org.springframework.jdbc.BadSqlGrammarException;
2930
import org.springframework.jdbc.core.JdbcOperations;
3031
import org.springframework.session.jdbc.JdbcOperationsSessionRepository;
@@ -46,6 +47,7 @@ public class SessionAutoConfigurationJdbcTests
4647
@Test
4748
public void defaultConfig() {
4849
load(Arrays.asList(EmbeddedDataSourceConfiguration.class,
50+
JdbcTemplateAutoConfiguration.class,
4951
DataSourceTransactionManagerAutoConfiguration.class),
5052
"spring.session.store-type=jdbc");
5153
JdbcOperationsSessionRepository repository = validateSessionRepository(

0 commit comments

Comments
 (0)