Я использую Spring boot 2.0.1 с Hikari CP и хочу использовать свойства приложения для установки таких свойств источника данных Hikari, как время ожидания подключения, максимальный размер пула и т. Д., Но имя пользователя и пароль должны быть установлены во время выполнения. Я попробовал ниже, но когда источник данных создан, у него нет значения тайм-аута соединения, которое я пытаюсь установить.
Ниже приведен код для bean источника данных.
@Value("${spring.datasource.url}")
private String url;
@ConfigurationProperties(prefix = "spring.datasource.hikari")
@Bean
public DataSource dataSource() throws Exception {
//User name and password is fetched from some other data storage
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setJdbcUrl(url);
hikariConfig.setUsername(username);
hikariConfig.setPassword(password);
//The data source created here doesn't have connection timeout value
//set by me
return new HikariDataSource(hikariConfig);
}
Ниже находится файл свойств моего приложения
spring.datasource.url={Our DB URL}
spring.datasource.hikari.maximumPoolSize=100
spring.datasource.hikari.idleTimeout=30000
spring.datasource.hikari.poolName=SpringBootJPAHikariCP
spring.datasource.hikari.connectionTimeout=40000
spring.datasource.hikari.driver-class-
name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.hibernate.connection.provider_class=org.hibernate.hikaricp.internal.HikariCPConnectionProvider
Я упоминал ниже документацию Spring, но в ней просто говорится об автоматической настройке свойств, таких как url и учетные данные (которые работали), но не об истечении времени ожидания соединения и простоя и т. Д.
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-configure-a-datasource
Пожалуйста, дайте мне знать, если я что-то упустил.