Я столкнулся с ошибкой в приложении Spring Boot при попытке настроить источник данных. Сообщение об ошибке выглядит следующим образом:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver class.
Это мой pom.xml:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>42.6.1</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.6.0.Beta1</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.6.0.Beta1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-dependencies</artifactId>
<version>4.1.0</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
<version>0.0.20131108.vaadin1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
Контекст:
У меня есть приложение Spring Boot, которое успешно считывает свойства с сервера конфигурации. Ниже приведены соответствующие фрагменты настройки моего приложения:
@Configuration
@SpringBootApplication
public class AdminApiApplication {
public static void main(String\[\] args) {
SpringApplication.run(AdminApiApplication.class, args);
}
}
bootstrap.yml (клиентское приложение):
spring:
cloud:
config:
uri: http://localhost:8888
enabled: true
name: spring-cloud-config-server
management:
endpoints:
web:
exposure:
include: "\*"
application.yml (сервер конфигурации):
server:
port: 8888
spring:
profiles:
active: git
security:
user:
name: \*\*\*\*
password: \*\*\*\*
logging:
level:
org.springframework.cloud.config: DEBUG
spring:
cloud:
config:
server:
git:
uri: https://github.com/*****/****.git
username: \*\*\*\*\*
password: \*\*\*\*\*\*
cloneOnStart: true
когда я запускаю сервер конфигурации, я получаю значения из git:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/postgres?currentSchema=postgres
username: postgres
password: postgres
driverClassName: org.postgresql.Driver
jpa:
show-sql: true
hibernate:
ddl-auto: update
dialect: org.hibernate.dialect.PostgreSQLDialect
server:
port: 8080
Хотя приложение может успешно считывать свойства с сервера конфигурации, при запуске клиентского приложения для получения свойств с сервера возникает вышеупомянутая ошибка.
Хотя приложение может успешно считывать свойства с сервера конфигурации, при запуске клиентского приложения для получения свойств с сервера возникает вышеупомянутая ошибка.
Я был бы признателен за любую информацию о решении этой проблемы и правильной настройке источника данных в моем приложении Spring Boot.




Что-то не так с вашим application.yml.
Используйте это для своих целей:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/postgres?currentSchema=postgres
username: postgres
password: postgres
driver-class-name: org.postgresql.Driver
jpa:
show-sql: true
hibernate:
ddl-auto: update
dialect: org.hibernate.dialect.PostgreSQLDialect
server:
port: 8080
ваше приложение не может найти подходящий атрибут драйвера в вашем application.yml.