gpt4 book ai didi

java - 配置hikari连接池

转载 作者:行者123 更新时间:2023-12-02 18:09:28 25 4
gpt4 key购买 nike

我的数据库有以下设置(我有多个数据库,所以它们在 spring.datasource 层次结构中配置。

spring:
datasource:
db-write:
url: jdbc:sqlserver://whatever.database.windows.net:1433;database=dbname;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
username: 'myusername'
password: 'mynotsosecretpassword'
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver

然后我在这里配置我的数据源

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = "com.datasources.dbwrite.repository",
entityManagerFactoryRef = "entityManagerFactoryDbWrite",
transactionManagerRef= "transactionManagerDbWrite"
)
public class DataSourceConfigurationDbWrite {
@Bean
@Primary
@ConfigurationProperties("spring.datasource.db-write")
public DataSourceProperties dataSourcePropertiesDbWrite() {
return new DataSourceProperties();
}

@Bean
@Primary
@ConfigurationProperties("spring.datasource.db-write.configuration")
public DataSource dataSourceDbWrite() {
return dataSourcePropertiesDbWrite().initializeDataSourceBuilder()
.type(HikariDataSource.class).build();
}

@Primary
@Bean(name = "entityManagerFactoryDbWrite")
public LocalContainerEntityManagerFactoryBean entityManagerFactoryDbWrite(EntityManagerFactoryBuilder builder) {
return builder
.dataSource(dataSourceDbWrite())
.packages("com.datasources.dbwrite.models")
.build();
}

@Primary
@Bean
public PlatformTransactionManager transactionManagerDbWrite(
final @Qualifier("entityManagerFactoryDbWrite") LocalContainerEntityManagerFactoryBean entityManagerFactoryDbWrite) {
return new JpaTransactionManager(Objects.requireNonNull(entityManagerFactoryDbWrite.getObject()));
}
}

我正在根据我在 dataSourcePropertiesDbWrite 方法中读取的属性在 dataSourceDbWrite 方法中配置我的 hikari 数据源。我相信我需要在特定层次结构中配置属性,以便 dataSourceDbWrite 方法可以轻松检测 hikari 需要哪些属性。对吗?

该层次结构是什么?

此外,我如何以及在哪里可以找到我可以为 hikari 配置的属性?连接超时?连接池大小等?

最佳答案

我个人更喜欢 application.yml 来配置 Hikari:

spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: {JDBC URL}
username: {USERNAME}
password: {PASSWORD}
type: com.zaxxer.hikari.HikariDataSource
hikari:
minimum-idle: 5
idle-timeout: 600000
maximum-pool-size: 10
auto-commit: true
pool-name: HikariCorePool
max-lifetime: 1800000
connection-timeout: 30000
connection-test-query: select * from information_schema.tables limit 1

(顺便说一句,那段配置最初是几年前同事写的。我们没有更改它,只是复制并粘贴到那些年的任何新项目中。😆)

如果你想检查所有可配置字段,那些 spring.datasource.hikari.* keys in org.springframework.boot:spring-boot-autoconfigure:{VERSION}/META -INF/spring/spring-configuration-metadata.json 可能会有帮助。

com.zaxxer.hikari.HikariConfigMXBean 中的 javadoc 也可以提供帮助。

关于java - 配置hikari连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72654048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com