开始使用
Spring Vault 支持需要 Vault 0.6 或更高版本以及 Java SE 6 或更高版本。 启动一个工作环境的简单方法是在 STS 中创建一个基于 Spring 的项目。
首先,您需要设置一个正在运行的 Vault 服务器。 有关如何启动 Vault 实例的说明,请参阅 Vault。
要在 STS 中创建一个 Spring 项目,请转到 File → New → Spring Template Project → Simple Spring Utility Project → 出现提示时按 Yes。 然后输入项目名称和一个包名称,例如 org.spring.vault.example。
然后将以下内容添加到 pom.xml 依赖项部分。
<dependencies>
  <!-- other dependency elements omitted -->
  <dependency>
    <groupId>org.springframework.vault</groupId>
    <artifactId>spring-vault-core</artifactId>
    <version>3.1.3</version>
  </dependency>
</dependencies>如果您使用的是里程碑版本或候选发布版本,您还需要将 Spring Milestone 存储库的位置添加到您的 maven pom.xml 中,该位置与您的 <dependencies/> 元素位于同一级别。
<repositories>
  <repository>
    <id>spring-milestone</id>
    <name>Spring Maven MILESTONE Repository</name>
    <url>https://repo.spring.io/milestone</url>
  </repository>
</repositories>该存储库也可以 在此处浏览。
如果您使用的是 SNAPSHOT,您还需要将 Spring Snapshot 存储库的位置添加到您的 maven pom.xml 中,该位置与您的 <dependencies/> 元素位于同一级别。
<repositories>
  <repository>
    <id>spring-snapshot</id>
    <name>Spring Maven SNAPSHOT Repository</name>
    <url>https://repo.spring.io/snapshot</url>
  </repository>
</repositories>该存储库也可以 在此处浏览。
创建一个简单的 Secrets 类来持久化
package org.spring.vault.example;
public class Secrets {
    String username;
    String password;
    public String getUsername() {
        return username;
    }
    public String getPassword() {
        return password;
    }
}以及一个运行的主应用程序
package org.springframework.vault.example;
import org.springframework.vault.authentication.TokenAuthentication;
import org.springframework.vault.client.VaultEndpoint;
import org.springframework.vault.core.VaultTemplate;
import org.springframework.vault.support.VaultResponseSupport;
public class VaultApp {
    public static void main(String[] args) {
        VaultTemplate vaultTemplate = new VaultTemplate(new VaultEndpoint(),
                new TokenAuthentication("00000000-0000-0000-0000-000000000000"));
        Secrets secrets = new Secrets();
        secrets.username = "hello";
        secrets.password = "world";
        vaultTemplate.write("secret/myapp", secrets);
        VaultResponseSupport<Secrets> response = vaultTemplate.read("secret/myapp", Secrets.class);
        System.out.println(response.getData().getUsername());
        vaultTemplate.delete("secret/myapp");
    }
}即使在这个简单的示例中,也有几件事需要注意
- 
您可以使用 org.springframework.vault.client.VaultEndpoint对象和ClientAuthentication来实例化 Spring Vault 的中心类VaultTemplate。 您无需启动 Spring Context 即可使用 Spring Vault。
- 
预计 Vault 配置了 00000000-0000-0000-0000-000000000000的根令牌才能运行此应用程序。
- 
映射器适用于标准 POJO 对象,无需任何额外的元数据(尽管您可以选择提供该信息)。 
- 
映射约定可以使用字段访问。 请注意, Secrets类只有 getter。
- 
如果构造函数参数名称与存储的文档的字段名称匹配,它们将用于实例化对象。