跳到主要内容
版本:3.1.2

开始使用

DeepSeek V3 中英对照 Getting Started

Spring Vault 支持需要 Vault 0.6 或更高版本以及 Java SE 6 或更高版本。一个快速引导设置工作环境的简单方法是在 STS 中创建一个基于 Spring 的项目。

首先,你需要设置一个运行的 Vault 服务器。有关如何启动 Vault 实例的说明,请参考 Vault。

要在 STS 中创建一个 Spring 项目,请转到 文件 → 新建 → Spring 模板项目 → 简单 Spring 实用项目 → 当提示时按 是。然后输入项目名称和包名称,例如 org.spring.vault.example。

然后在 pom.xml 的 dependencies 部分添加以下内容。

示例 1. 添加 Spring Vault 依赖

<dependencies>

<!-- other dependency elements omitted -->

<dependency>
<groupId>org.springframework.vault</groupId>
<artifactId>spring-vault-core</artifactId>
<version>3.1.2</version>
</dependency>

</dependencies>

如果你正在使用里程碑版本或候选发布版本,你还需要将 Spring 里程碑仓库的位置添加到你的 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 版本,你还需要在 pom.xml 中添加 Spring Snapshot 仓库的位置,该仓库的位置应与 <dependencies/> 元素处于同一层级。

<repositories>
<repository>
<id>spring-snapshot</id>
<name>Spring Maven SNAPSHOT Repository</name>
<url>https://repo.spring.io/snapshot</url>
</repository>
</repositories>

该仓库也可以在这里浏览。

创建一个简单的 Secrets 类来持久化:

示例 2. 映射数据对象

package org.spring.vault.example;

public class Secrets {

String username;
String password;

public String getUsername() {
return username;
}

public String getPassword() {
return password;
}
}

以及一个运行的主应用程序

示例 3. 使用 Spring Vault 的示例应用程序

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 Vault 时不需要启动 Spring 上下文。

  • 运行此应用程序时,Vault 需要配置一个根令牌 00000000-0000-0000-0000-000000000000。

  • 映射器适用于标准的 POJO 对象,无需任何额外的元数据(尽管你可以选择提供这些信息)。

  • 映射约定可以使用字段访问。注意 Secrets 类只有 getter 方法。

  • 如果构造函数参数名称与存储文档的字段名称匹配,它们将用于实例化对象。