Spring Boot 2 不适用于 Postgres
Posted
技术标签:
【中文标题】Spring Boot 2 不适用于 Postgres【英文标题】:Spring boot 2 does not work with Postgres 【发布时间】:2018-11-26 12:45:03 【问题描述】:我有一个带有 spring boot 2.0.3.RELEASE 的 Spring Boot JPA 应用程序并连接到 PostgreSQL,当我运行该应用程序时,我收到以下错误消息:
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
数据库连接属性:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/testS
username: postgres
password: postgres123
driver-class-name: org.postgresql.Driver
依赖关系:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
堆栈跟踪:
Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
我该如何解决这个问题?
【问题讨论】:
分享 stacktrace 会有帮助的 @GauravSrivastav 完成 尝试在数据源中使用属性:dataSourceClassName=org.postgresql.ds.PGSimpleDataSource
看看这个帖子:***.com/a/33324144/967808
还是一样的问题
【参考方案1】:
您刚刚更改了依赖项,如下所示。在依赖项中包含版本和范围元素。
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
<scope>runtime</scope>
</dependency>
【讨论】:
还是一样的问题 你的 postgres 版本,jar 应该和它兼容。另一件事是检查依赖项是否下载。【参考方案2】:我在 application.yml 中使用 spring 配置文件时遇到了这个问题。 我只在 yaml 的配置文件部分定义了 spring.datasource.* 属性。 但是,当我将这些属性移到 MAIN 部分(即默认配置文件)时,问题就消失了。
【讨论】:
以上是关于Spring Boot 2 不适用于 Postgres的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 2.2.2 数据源 URL 不适用于 SQL Server 2019
Hystrix 和 Turbine 不适用于 Spring boot 2 和 Spring cloud Finchley.M8
@MockBean 不适用于带有 JUnit 5 和 Spring Boot 2 的 @WebMvcTest?
涡轮机不适用于 spring boot 2.0.6 和 spring cloud Finchley.SR1
Spring Boot 不适用于 Elastic Beanstalk
Prometheus 配置不适用于 Spring boot 2.3.0:ClassNotFoundException:io.micrometer.prometheus.HistogramFlavor