Java存储并从属性文件yaml

时间:2018-12-19 10:05:09

标签: java arrays spring yaml

我正在研究一个从数据库读取数据的应用程序。数据库中已经有加密的条目。我把密钥作为字节数组,想从yaml文件中加载它。

有没有办法填充这样的数组

private static final byte[] iv = { 13, -11, -88, 20, -110, 113, -2, -8, -15, -99, -23, -10, -10, -74, 1, 11 }

直接来自yaml文件吗?

yaml文件:

iv: 13,-11,-88

由于我无法在需要使用键的地方自动装配类,因此无法使用@value注释(据我了解)。所以我一直想使用这样的util类:

public static byte[] getKeyFor(Class type) {
    return context.getEnvironment().getProperty("iv");
}

2 个答案:

答案 0 :(得分:2)

下面应该可以工作:

application.yml:

iv: 12,32,12,32

在需要值的类中,将其绑定如下:

@Value("${iv}") byte[] iv;

答案 1 :(得分:1)

您使用String格式的字节数据得到了一些字符串。

String iv = someCall(); //"13, -11, -88, 20, -110, 113, -2, -8, -15, -99, -23"
String[] byteStrings = iv.split(",");
byte[] byteData = new byte[byteStrings.length];
for (int i = 0; i < byteData.length; i++){
    byteData[i] = Byte.parseByte(byteStrings[i], 8); 
}