属性文件中的Spring十六进制字符串

时间:2013-03-19 12:18:26

标签: java spring

我在属性文件中有一个十六进制值,我希望Spring通过在我的java对象中使用@Value注释将其转换为字节数组。

示例:

hex.value=CB53CD20B2F222D9

在java中我有以下内容:

@Value("#{myProperties['hex.value'] ?: ''}")
private byte[] hexValue;

Spring目前只将String.getBytes()设置为hexValue,但我希望它转换为表示String的实际字节数组。例如,使用Commons-Codec Hex

有没有人知道如何配置Spring以便它不仅仅返回getBytes()?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用Spring EL的Types references

如果您想使用org.apache.commons.codec.binary.Hex#decodeHex,那么目标@Value将如下所示:

@Value("#{T(org.apache.commons.codec.binary.Hex).decodeHex((myProperties['hex.value'] == null ? '' : myProperties['hex.value'] ).toCharArray())}")
private byte[] hexValue;