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