Код: Выделить всё
@Slf4j
public class IAMAuthDataSource extends HikariDataSource {
@Override
public String getPassword() {
String configpwd = super.getPassword();
if (configpwd != null && !configpwd.trim().isEmpty()) {
return configpwd;
}
return getToken();
}
private String getToken() {
URI datasourceUri = URI.create(getJdbcUrl().substring(5));
Region region = new DefaultAwsRegionProviderChain().getRegion();
RdsUtilities generator = RdsUtilities.builder()
.credentialsProvider(WebIdentityTokenFileCredentialsProvider.create())
.region(region)
.build();
GenerateAuthenticationTokenRequest request = GenerateAuthenticationTokenRequest.builder()
.hostname(datasourceUri.getHost())
.port(datasourceUri.getPort())
.username(getUsername())
.region(region)
.build();
return generator.generateAuthenticationToken(request);
}
@Primary
@Bean
public DataSource dataSource() {
HikariDataSource ds = new IAMAuthDataSource();
ds.setMaximumPoolSize(30);
ds.setPoolName("newDBPool");
log.debug("Pool name configured: {}", ds.getPoolName());
return ds;
}
}
< /code>
Даже если я устанавливаю новый бассейн с пользовательским именем и размером пула здесь и устанавливаю его как основной, он не вступает в силу. Он установлен на месте, но не при развертывании. При развертывании это все еще относится к Hikaripool-1. < /P>
Я также удостоверился, что те же свойства устанавливаются в свойствах моего приложения для всех ENV, где устанавливают эти реквизиты: < /p>
spring.datasource.hikari.maximumPoolSize=30 spring.datasource.hikari.maxLifetime=1200000Я использую Spring Boot 2.5.
Подробнее здесь: https://stackoverflow.com/questions/797 ... on-default