当前位置: 首页 > 知识库问答 >
问题:

Spring boot hikari-数据源或数据源ClassName或jdbcUrl是必需的问题

乐正光誉
2023-03-14

尝试启动Spring应用程序时出现以下错误

错误5908---[main]com。扎克塞尔。希卡里。HikariConfig:HikariPool-1-需要数据源或数据源ClassName或jdbcUrl

我的应用程序。属性文件如下所示:

spring.datasource.one.jdbc-url = jdbc:postgresql://10.x.x.x:y/sampledb1
spring.datasource.one.username = someuser
spring.datasource.one.password = somepasswd
spring.datasource.one.driver-class-name = org.postgresql.Driver

spring.datasource.two.jdbc-url = jdbc:postgresql://10.x.x.x:z/sampledb2
spring.datasource.two.username = someuser
spring.datasource.two.password = somepassword
spring.datasource.two.driver-class-name = org.postgresql.Driver

我使用的DataSourceBuilder类如下所示:

@Configuration
public class DataSourceConfig
{
    @Bean(name = "one")
    @Primary
    @ConfigurationProperties(prefix = "spring.datasource.one") 
    public DataSource dataSource1()
    {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "two")
    @ConfigurationProperties(prefix = "spring.datasource.two") 
    public DataSource dataSource2()
    {
        return DataSourceBuilder.create().build();
    }
}

我的pom看起来像这样。

    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
    <relativePath />
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <avro.version>1.8.2</avro.version>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <version.powermock>1.6.2</version.powermock>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <artifactId>log4j-over-slf4j</artifactId>
                <groupId>org.slf4j</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.2</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!-- actuator -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!-- eureka -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <!-- hystrix -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
    </dependency>
     </dependencies> 

这在早些时候运行良好,但现在导致了一些问题。并且错误发生间歇性,有时它开始时没有错误,有时它会因错误而失败。

我尝试了链接中建议的解决方案。他们似乎不适合我。


共有2个答案

郭炳
2023-03-14

当spring在错误的位置查找属性文件时,可能会发生此错误。例如,当Java选项-Dspring时。配置。位置= 在启动时传递给应用程序服务器,然后忽略已部署应用程序的属性文件,即使spring中没有属性文件。配置。位置

充煌
2023-03-14

jdbcUrl更改为jdbcUrl,以便Hikari可以为每个url找到合适的驱动程序。

jdbcUrl此属性指示HikariCP使用“基于DriverManager的”配置。我们认为基于数据源的配置(上面)由于各种原因(见下文)是优越的,但对于许多部署来说,差异不大。将此属性与“旧”驱动程序一起使用时,您可能还需要设置driverClassName属性,但请先尝试,不要使用。请注意,如果使用此属性,您仍然可以使用数据源属性来配置驱动程序,事实上,建议您使用URL中指定的驱动程序参数。默认值:无

 类似资料:
  • 当我尝试运行gradle项目时,我收到以下错误消息: 项目配置的yml文件如下所示: 我尝试用gradlew bootRun运行项目,但不可能启动项目。也许这是一些依赖项版本的问题,但我不是很确定。 编辑:

  • 我正在尝试按照本指南创建一个为我提供数据源对象的Bean,但是当我尝试访问数据源时,例如这样: 我得到这个错误: 我多次编辑我的代码,因为我读过各种各样的例子,它们总是略有不同。 这是src/main/resources文件夹中的application.properties文件: 这是我的依赖关系: 有人知道我错在哪里吗??谢谢你

  • 想澄清一些困惑。我有applicationContext.xml。 问题1:1有什么区别 问题 2: 我在Spring论坛上问了一些问题。他提到的关于池化的一件事如下 如果您需要/想使用hibernate的内部连接池,我建议您不要这样做,只需配置一个支持连接池的数据源,并将其注入sessionfactorybean。 hibernate的内部连接池=这是下面的第二个问题。正确 简单地配置一个支持连

  • 问题内容: 要清除一些混乱。我有applicationContext.xml。 问题1: 1和2有什么区别?不同的方法都相同吗? 问题2: 我在Spring论坛上问了一些问题。他提到的有关合并的内容如下 如果您需要/想要使用内部连接池进行hibernate,我会建议您这样做,只需配置一个支持连接池的数据源并将其注入到sessionfactorybean中即可。 hibernate的内部连接池= 这

  • 定义 SHOW RESOURCES [FROM schemaName] 说明 列 说明 name 数据源名称 type 数据源类型 host 数据源地址 port 数据源端口 db 数据库名称 attribute 数据源参数 示例 mysql> show resources; +------+-------+-----------+------+------+----------------

  • 定义 ADD RESOURCE dataSource [, dataSource] ... ALTER RESOURCE dataSource [, dataSource] ... dataSource: simpleSource | urlSource simpleSource: dataSourceName(HOST=hostName,PORT=port,DB=dbNam