我想以编程方式设置数据源的密码,并且仍然使用 Spring GCP 和 Spring Data 的自动配置。
背景
我想将我的密码作为加密 blob 获取并通过 Google KMS 解密。我读到 spring gcp auto configuration 改变了DataSourceProperties
bean 以应用 gcp secific 配置(https://docs.spring.io/spring-cloud-gcp/docs/1.0.0.RELEASE/reference/html/_spring_jdbc.html#_literal_datasource_literal_creation_flow) .
现在我想再次改变DataSourceProperties
暴露的 Bean GcpCloudSqlAutoConfiguration
。暴露DataSourceProperties
如下不起作用,因为GcpCloudSqlAutoConfiguration
那时不知道要采用哪个Bean:由spring boot自动配置或我的配置。但是我的应该应用在配置的最后一步。
@Bean
public DataSourceProperties dataSourceProperties(DataSourceProperties dataSourceProperties) {
dataSourceProperties.setPassword(getDecryptedSecret());
return dataSourceProperties;
}
private String getDecryptedSecret() {
// get encrypted password and decrypt it
return "myDecryptedPassword"
}