I am making a spring boot app with a custom transactionManager with its own datasource like so. Btw I'm using hikariCP as the datasource
@Configuration
@EnableTransactionManagement
@EnableJpaRespositories(
basePackages = "..."
entityManagerFactoryRef = "..."
transactionManagerRef = "..."
)
public class myDataSourceConfigration {
@Bean
@Primary
@Configuration("myconfig.datasource")
public DataSourceProperties myconfigDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
@Configuration("myconfig.datasource.configurations")
public DataSource myconfigDataSource(){
return myconfigDataSourceProperties().initializeDataSourceBuilder().type(HikariDataSource.class).build;
}
@Bean
@Primary
public LocalContainerEntityManagerFactoryBean myconfigEntityManagerFactory(EntityManagerFactoryBuilder builder){
return builder
.dataSource(myconfigDataSource)
.packages(MyClass.class)
.build;
}
@Bean
@Primary
public PlatformTransactionManager myconfigTransactionManager(
final @Qualifier ("myconfigEntityManagerFactory")LocalContainerEntityManagerFactoryBean myconfigEntityManagerFactory){
return new JpaTransactionManager(myconfigEntityManagerFactory.getObject());
}
}
In my application.properties, I have these configurations
myconfig.datasource.url:url
myconfig.datasource.username:username
myconfig.datasource.password:password
myconfig.datasource.driverClassName:driverClass
Now this all works when its fine but the issue is when it doesn't work. For example, if I put the wrong password, hikari throws a connection pool exception but the app keeps running. I want the app to fail, throw an exception and shutdown but I am having trouble figuring that out. I tried adding another configuration called initializationFailTimeout like so myConfig.datasource.initializationFailTimeout:5000
but same issue, I see an exception but the app keeps running.
Anyway on how to make spring boot fail fast when hikari throws a connection exception?
Thanks