Я изучаю 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)
Нужна ваша помощь.Спасибо.