From f1ecf53495c4bf8fc27e382d5ff505e55c95cac1 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Mon, 16 Mar 2015 09:18:00 +0000 Subject: [PATCH] Delay instantiation of DataSource as late as possible Unfortunately it still has to happen in a @PostConstruct (otherwise JPA never sees the schema in time), but we can delay a bit by not using @Autowired. Appears to fix the Spring Cloud problem (https://github.com/spring-cloud/spring-cloud-config/issues/105). Fixes gh-2658 --- .../boot/autoconfigure/jdbc/DataSourceInitializer.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceInitializer.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceInitializer.java index f533a5f999..e7a15c419a 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceInitializer.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceInitializer.java @@ -50,7 +50,6 @@ class DataSourceInitializer implements ApplicationListener 0) { + this.dataSource = applicationContext.getBean(DataSource.class); + } if (this.dataSource == null) { logger.debug("No DataSource found so not initializing"); return;