从其他 属性 或 Java VM 选项调用 Spring 引导应用程序 属性

Call Spring Boot Application Property From Other Property Or Java VM Option

我在 Spring 引导 application.properties:

中有一个如下所示的 属性
spring.datasource.url=jdbc:mysql://localhost:3306/my_db?serverTimezone=UTC&connectTimeout=10000&socketTimeout=30000

在这里,我想给“connectTimeout=10000&socketTimeout=30000”参数提供其他属性,例如:

db.myprops=connectTimeout=10000&socketTimeout=30000
spring.datasource.url=jdbc:mysql://localhost:3306/my_db?serverTimezone=UTC&{db.myprops}

我该如何处理或 Spring Boot 中是否有用于 connectTimeout 和 socketTimeout 的特定属性?

如果你使用 JPA spring 使用 Hikari 作为底层数据库连接池

//example configuration
spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.idleTimeout=600000
spring.datasource.hikari.maxLifetime=1800000

Hikari configuration knobs Spring Documentation

OP 的解决方案。

在Spring-引导配置中将其称为其他属性:

spring.application.property.1=property1
spring.application.property.2=property2${spring.application.property.1}

然后我们可以从 Java 环境中调用它来自定义它,如下所示:

java -Dspring.application.property.1=custom -jar ../*.jar