Hikari在SpringBoot项目中不从属性文件中读取配置。

huangapple 未分类评论77阅读模式
英文:

Hikari doesn't read configuration from properties file in SpringBoot project

问题

你好,我正在使用Spring Boot和Hikari进行数据库连接。Spring Boot版本是2.2.5.RELEASE,Hikari版本是3.4.2。然而,当我运行我的项目时,它总是使用Hikari的默认配置值,而不是使用我的属性文件中的值。以下是我的属性文件内容:

spring.datasource.jdbcUrl=#####
spring.datasource.username=###
spring.datasource.password=###
spring.datasource.hikari.maximumPoolSize=4
spring.datasource.hikari.connectionTimeout=300000

这是我的应用程序配置中的数据源:

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

这是输出结果:

10:23:19.050 [main] DEBUG com.zaxxer.hikari.HikariConfig - maxLifetime.....................1800000
10:23:19.050 [main] DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................10

有什么我漏掉的吗?

英文:

Hi I'm using Springboot and Hikari for db connection in my project.
The springboot version is 2.2.5.RELEASE and Hikari is 3.4.2. However, when I run my project, it always use Hikari default config value rather than using values in my properties file.
Here is my properits:

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-html -->

spring.datasource.jdbcUrl=#####
spring.datasource.username=###
spring.datasource.password=###
spring.datasource.hikari.maximumPoolSize=4
spring.datasource.hikari.connectionTimeout=300000

<!-- end snippet -->

Here is my datasource in application configuration:

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-html -->

@Primary
@ConfigurationProperties(prefix = &quot;spring.datasource&quot;)
@Bean
public DataSource DBDatasource() {
    return DataSourceBuilder.create().build();
    }

<!-- end snippet -->

Here is the output :
10:23:19.050 [main] DEBUG com.zaxxer.hikari.HikariConfig -maxLifetime.....................1800000

10:23:19.050 [main] DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................10

Anything I missed ?

答案1

得分: -1

你正在覆盖默认的 DataSource 自动配置。以下是如何正确初始化 Hikari 数据源的方法:

@Bean
@ConfigurationProperties(prefix = "spring.datasource.hikari")
HikariDataSource dataSource(DataSourceProperties properties) {
    HikariDataSource dataSource = properties
        .initializeDataSourceBuilder()
        .type(HikariDataSource.class).build();
    if (StringUtils.hasText(properties.getName())) {
        dataSource.setPoolName(properties.getName());
    }
    return dataSource;
}
英文:

You're overriding the default DataSource auto configuration. Here's how you can properly intialize hikari datasource:

@Bean
@ConfigurationProperties(prefix = &quot;spring.datasource.hikari&quot;)
HikariDataSource dataSource(DataSourceProperties properties) {
	HikariDataSource dataSource = properties
       .initializeDataSourceBuilder()
       .type(HikariDataSource.class).build();
	if (StringUtils.hasText(properties.getName())) {
		dataSource.setPoolName(properties.getName());
	}
	return dataSource;
}

答案2

得分: -1

明白了,只需在属性文件中进行配置,无需使用 'hikari':

spring.datasource.maximumPoolSize=4

英文:

Figured it out just need to config in properties file without 'hikari' :

spring.datasource.maximumPoolSize=4

huangapple
  • 本文由 发表于 2020年8月15日 01:34:43
  • 转载请务必保留本文链接:https://java.coder-hub.com/63417547.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定