I am creating a spring boot application (Spring Boot 2.5). It should work with multiple databases. Unfortunately, it is not known in advance how many bases there will be. In application.properties I have described it as follows.
app.datasource[0].dsp.url = ...
app.datasource[0].dsp.username= ...
app.datasource[0].dsp.password = ...
app.datasource[0].hikari.maximumPoolSize= ...
app.datasource[1].dsp.url = ...
app.datasource[1].dsp.username= ...
app.datasource[1].dsp.password = ...
app.datasource[1].hikari.maximumPoolSize= ...
Config file:
@ConfigurationProperties(prefix = "app")
public class DSProperties {
private List<DSConfig> datasource;
public List<DSConfig> getDatasource() {
return datasource;
}
}
class DSConfig {
private DataSourceProperties dsp;
private HikariConfig hikari;
public DataSourceProperties getDsp() {
return dsp;
}
public HikariConfig getHikari() {
return hikari;
}
}
Create datasource
@Configuration
public class BeanConfigs {
@Bean
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public DataSource createDataSource(DSProperties dsProperties){
return dsProperties.getDsConfigs().get(0).getDsp().initializeDataSourceBuilder().build();
//how to set properties for hikari or how to configure it correctly?
}
}
I don't quite understand how to apply hikari settings to work with a data source and how to configure datasource