これらのバージョンを使用するspringboot
アプリがあります:
SpringBoot: 2.3.1
SpringCloud: Hoxton.SR5
SpringData: Neumann-SR1
ここで説明されているようにカスタム クラスを使用しました (@Arun からの回答): Spring Cloud Vault Config を構成して、/secret 以外の場所からプルする
ボールト構成を取得しているようには見えません。私はbootstrap.yml
次のものを持っています:
spring:
cloud:
# Vault configurations
vault:
generic:
enabled: false
uri: https://${URI}
authentication: TOKEN
token: ${VAULT_TOKEN}
config:
discovery:
enabled: true
私はそれをローカルに持ち込もうとしているのでapplication.yml
、次のようにしています:
spring:
datasource:
url: jdbc:postgresql://localhost:8157/postgres
vault
これは、値をDataSourceに注入しようとしている場所です。
@Profile(value = {"local", "dev", "stg", "prd"})
@Configuration
public class DatabaseConfig {
@Autowired
DatabaseCredentials config;
@Bean
@Primary
public DataSource dataSource() {
return DataSourceBuilder
.create()
.username(config.getUsername())
.url(config.getUrl())
.password(config.getPassword())
.driverClassName("org.postgresql.Driver")
.build();
}
}
アプリの起動時DatabaseCredentials
は空です。
私が行った別の方法は次のとおりです。
public class DatabaseConfig {
@Value("${ccm.database.username}")
String username;
@Value("${ccm.database.password}")
String password;
@Value("${spring.datasource.url}")
String url;
@Bean
@Primary
public DataSource dataSource() {
return DataSourceBuilder
.create()
.username(username)
.url(url)
.password(password)
.driverClassName("org.postgresql.Driver")
.build();
}
}
これも、 の値が見つからないと言って空になっていますccm.database.username
。
私は何を間違っていますか?