Не удается устранить эту ошибку: не удалось настроить источник данных - PullRequest
0 голосов
/ 22 января 2019

Я изучаю 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 голосов
/ 22 января 2019

Проверьте конфигурацию вашей БД - кажется, она перезаписывает источник данных Spring по умолчанию, но URL-адрес отличается от указанного в application.properties: "jdbc: mysql: // localhost: 3306 / hr? AutoReconnect = true"

В свойствах у вас есть: "JDBC: MySQL: // локальный: 3306 / hrdb autoReconnect = истина"

"hr" против "hrdb".

Я бы полностью избавился от этого класса и вместо этого объявил бы соответствующий драйвер JDBC в вашем pom.xml и позволил бы Spring позаботиться о соединении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...