数据源配置加密，基于插件  [solon-security-vault 插件](/article/300) 实现。如何生成密文，如何定制算法，要参考插件的说明。



### 方案1：使用 `solon.dataSources` 配置

这个方案（数据源是自动构建的），在自动构建数据源时，自动支持加解密处理。

```yaml
solon.vault:
  password: "liylU9PhDq63tk1C"

solon.dataSources:
  "db_order!": #数据源（!结尾表示 typed=true）
    class: "com.zaxxer.hikari.HikariDataSource"
    driverClassName: "xx"
    jdbcUrl: "xxx"
    username: "ENC(xo1zJjGXUouQ/CZac55HZA==)"
    paasword: "ENC(XgRqh3C00JmkjsPi4mPySA==)"
```


### 方案2：使用 `@VaultInject` 注解

这个方案，配置可以随意。是在配置注入时自动解密。

```yaml
solon.vault:
  password: "liylU9PhDq63tk1C"

test.db1:
  url: "..."
  username: "ENC(xo1zJjGXUouQ/CZac55HZA==)"
  password: "ENC(XgRqh3C00JmkjsPi4mPySA==)"
```

代码应用

```java
@Configuration
public class TestConfig {
    @Bean("db2")
    private DataSource db2(@VaultInject("${test.db1}") HikariDataSource ds){
        return ds;
    }
}
```


