title: Springboot No qualifying bean of type [javax.sql.DataSource]
body: <p>I'm trying to use application.properties to bean datasource but it seems that spring boot does not find the file or something like.</p>
  
  <pre><code>Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.sql.DataSource] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
  </code></pre>
  
  <p>Here my structure:</p>
  
  <pre><code> .
  ├── build.gradle
  └── src
      └── main
          ├── java
          │   └── com
          │       └── companies
          │           ├── CompanyApplication.java
          │           ├── config
          │           │   └── WebMvcConfig.java
          │           ├── controller
          │           │   └── HelloWorldController.java
          │           └── model
          │               ├── Article.java
          │               ├── daoInterface
          │               │   └── ArticleDaoInterface.java
          │               ├── daoTemplates
          │               │   └── ArticleDao.java
          │               └── mappers
          │                   └── ArticleMapper.java
          ├── resources
          │   └── application.properties
          └── webapp
              └── WEB-INF
                  └── pages
                      └── hello.jsp
  </code></pre>
  
  <p>I've try to move application.properties file from resources to config and nothing. 
  <code>application.properties:</code></p>
  
  <pre><code>spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  spring.datasource.url=jdbc:mysql://127.0.0.1:3306/name
  spring.datasource.username=root
  spring.datasource.password=root
  spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  </code></pre>
  
  <p><code>build.gradle</code></p>
  
  <pre><code>buildscript {
          repositories {
              //Required repos
              mavenCentral()
              maven { url "http://repo.spring.io/snapshot" }
              maven { url "http://repo.spring.io/milestone" }
          }
          dependencies {
              //Required dependency for spring-boot plugin
              classpath "org.springframework.boot:spring-boot-gradle-plugin:1.2.6.RELEASE"
          }
      }
  
      apply plugin: 'java'
      apply plugin: 'war'
      apply plugin: 'spring-boot'
  
      jar {
          baseName = 'companies'
          version = '0.2'
      }
  
      war {
          baseName = 'companies'
          version =  '0.1'
      }
  
      sourceCompatibility = 1.8
      targetCompatibility = 1.8
  
      repositories {
          mavenCentral()
          maven { url "http://repo.spring.io/snapshot" }
          maven { url "http://repo.spring.io/milestone" }
      }
  
      dependencies {
          compile 'org.springframework.boot:spring-boot-starter-web'
          compile("org.springframework.boot:spring-boot-starter")
          compile("org.springframework:spring-jdbc")
          compile('org.springframework.boot:spring-boot-starter-jdbc:1.2.6.RELEASE')
          testCompile("junit:junit")
          //Required dependency for JSP
          compile 'org.apache.tomcat.embed:tomcat-embed-jasper'
      }
  </code></pre>
  
  <p>And where I'm trying to autowire the dataSource:</p>
  
  <pre><code>package com.companies.model.daoTemplates;
  
  import com.companies.model.Article;
  import com.companies.model.daoInterface.ArticleDaoInterface;
  import com.companies.model.mappers.ArticleMapper;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.jdbc.core.JdbcTemplate;
  import org.springframework.stereotype.Repository;
  
  import javax.sql.DataSource;
  import java.util.List;
  
  @Repository
  public class ArticleDao implements ArticleDaoInterface {
  
      private JdbcTemplate jdbcTemplateObject;
  
      private final String DB_NAME = "articles";
  
      @Override
      @Autowired
      public void setDataSource(DataSource ds) {
          this.jdbcTemplateObject = new JdbcTemplate(ds);
      }
  
      @Override
      public List&lt;Article&gt; listArticle() {
          String SQL = "select * from " + DB_NAME + " where inactive = false ORDER BY name";
          List &lt;Article&gt; article = jdbcTemplateObject.query(SQL,
                  new ArticleMapper());
          return article;
      }
  
  }
  </code></pre>
  
  <p><code>CompanyApplication.java</code></p>
  
  <pre><code>package com.companies;
  
  import org.springframework.boot.SpringApplication;
  import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  import org.springframework.context.annotation.ComponentScan;
  import org.springframework.context.annotation.Configuration;
  
  @Configuration
  @ComponentScan
  @EnableAutoConfiguration
  public class CompanyApplication {
  
      public static void main(String[] args) {
          SpringApplication.run(CompanyApplication.class, args);
      }
  
  }
  </code></pre>
  
  <p>I cannot find where I'm failing at.</p>