title: Spring boot fails to load DataSource using PostgreSQL driver
body: <p>I have successfully developed a prototype using Spring Boot 1.0.2.RELEASE (was 1.0.1.RELEASE until today).</p>
  
  <p>I have searched and searched and tried solutions like:
  <a href="https://stackoverflow.com/questions/20854585/spring-boot-jdbc-datasource-autoconfiguration-fails-on-standalone-tomcat">Spring Boot jdbc datasource autoconfiguration fails on standalone tomcat</a>
  <a href="https://stackoverflow.com/questions/21422664/spring-boot-spring-data-import-sql-doesnt-run-spring-boot-1-0-0-rc1">Spring Boot / Spring Data import.sql doesn&#39;t run Spring-Boot-1.0.0.RC1</a></p>
  
  <p>They all suggests to let Spring Boot do the job.
  When using H2, everything works, but when I try to switch to PostgreSQL, i get:</p>
  
  <pre><code>Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.entityManagerFactory(org.springframework.orm.jpa.JpaVendorAdapter)] threw exception; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.sql.DataSource] is defined
  </code></pre>
  
  <p>My build.gradle is as follow:</p>
  
  <pre><code>loadConfiguration()
  
  def loadConfiguration() {
  def environment = hasProperty('env') ? env : 'dev'
  project.ext.envrionment = environment
  println "Environment is set to $environment"
  
  def configFile = file('config.groovy')
  def config = new ConfigSlurper("$environment").parse(configFile.toURL())
  project.ext.config = config
  }
  
  buildscript {
  ext {
      springBootVersion = '1.0.2.RELEASE'
  }
  repositories {
      mavenCentral()
  }
  dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-   plugin:${springBootVersion}")
  }
  }
  
  apply plugin: 'java'
  apply plugin: 'eclipse'
  apply plugin: 'idea'
  apply plugin: 'spring-boot'
  apply plugin: 'war'
  apply plugin: 'groovy'
  
  war {
  baseName = 'test'
  version =  '0.0.1-SNAPSHOT'
  }
  
  configurations {
  providedRuntime
  }
  
  repositories {
  mavenCentral()
  }
  
  dependencies {
  compile("org.springframework.boot:spring-boot-starter-web:${springBootVersion}")
  compile("org.springframework.boot:spring-boot-starter-thymeleaf:${springBootVersion}")
  
  compile("org.springframework.boot:spring-boot-starter-jdbc:${springBootVersion}")
  compile("org.springframework.boot:spring-boot-starter-data-jpa:${springBootVersion}")
  compile("postgresql:postgresql:9.1-901.jdbc4")
  //compile("com.h2database:h2")
  
  testCompile("org.springframework.boot:spring-boot-starter-test:${springBootVersion}")
  
  }
  
  task wrapper(type: Wrapper) {
  gradleVersion = '1.11'
  }
  </code></pre>
  
  <p>application.properties:</p>
  
  <pre><code>spring.jpa.database=POSTGRESQL
  spring.jpa.show-sql=false
  spring.jpa.hibernate.ddl-auto=update
  
  spring.database.driverClassName=org.postgresql.Driver
  spring.datasource.url=jdbc:postgresql://localhost/cms
  spring.datasource.username=cms
  spring.datasource.password=NA
  </code></pre>
  
  <p>Removing application.properties and changing the dependency back to H2 and everything is OK. </p>
  
  <p>I can't find where I am doing wrong :-(</p>