我有一个springboot
使用这些版本的应用程序:
SpringBoot: 2.3.1
SpringCloud: Hoxton.SR5
SpringData: Neumann-SR1
我已经使用了此处描述的自定义类(来自@Arun 的回答):Configuring Spring Cloud Vault Config to pull from a location than /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
注入我的数据源的地方:
@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
.
我究竟做错了什么?