无法解决此错误:无法配置数据源

时间:2019-01-22 14:44:43

标签: java spring-boot

我正在学习Spring Boot,在我的第一个设置中我遇到了这个问题:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured

我在网上查找了解决方案,并找到了一些解决方案,包括Stackoverflow上的解决方案,但没有一个起作用。

我的简单代码:

@SpringBootApplication
@RestController
public class SpringBootDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootDemoApplication.class, args);
    }

    @RequestMapping(value = "/")
    public String response(){
        return "You made it!";
    }    
}

我的POM:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

我的application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/hrdb?autoReconnect=true
spring.datasource.username=root
spring.datasource.password=passw0rd
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

我还创建了以下文件:

@Configuration
public class DBConfig {

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/hr?autoReconnect=true");
        dataSource.setUsername("root");
        dataSource.setPassword("passw0rd");
        return dataSource;
    }

}

我在单元测试或启动服务时遇到了提到的错误。我发现使它起作用的唯一方法是禁用数据源自动配置:

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

需要您的帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

检查您的数据库配置-似乎覆盖了Spring的默认数据源,但url与application.properties中的URL不同:“ jdbc:mysql:// localhost:3306 / hr?autoReconnect = true”

在属性中,您具有: “ jdbc:mysql:// localhost:3306 / hrdb?autoReconnect = true”

“ hr”与“ hrdb”。

我将完全摆脱此类,而在pom.xml中声明相关的JDBC驱动程序,然后让Spring负责连接。