Spring 没有 YAML 文件的 Cloud Vault 配置

Spring Cloud Vault Configuration without YAML file

我在 bootstrap.yml 文件

中提到了 Spring Cloud Vault 配置
spring:
  cloud:
    vault:
      authentication: APPROLE
      app-role:
        role-id: *****
        secret-id: ****
      host: ****
      port: 80
      scheme: http

但我不想在我的 YML 文件中包含这些,而是​​我希望将它们配置为一个 bean

@configuration / @bean

请帮忙。谢谢

我能够通过配置 VaultProperties 类型的 Bean 成功地做到这一点。下面是代码片段,它完全消除了在 bootstrap.yml

中维护相同内容的需要
@Configuration
public class VaultConfiguration {

    @Bean
    public VaultProperties vaultProperties() {

        VaultProperties vaultProperties = new VaultProperties();

        vaultProperties.setAuthentication(VaultProperties.AuthenticationMethod.APPROLE);

        VaultProperties.AppRoleProperties appRoleProperties = new VaultProperties.AppRoleProperties();
        appRoleProperties.setRoleId("****");
        appRoleProperties.setSecretId("****");

        vaultProperties.setAppRole(appRoleProperties);
        vaultProperties.setHost("***");
        vaultProperties.setPort(80);
        vaultProperties.setScheme("http");

        return vaultProperties;
    }
}

注意:当您的配置应被视为 bootstrap-配置时,您需要在 src/main/resources/META-INF/spring.factories

下提及 class 名称

spring.factories中的内容为

org.springframework.cloud.bootstrap.BootstrapConfiguration=com.arun.local.cloudconfig.VaultConfiguration