我在属性文件中有一个十六进制值,我希望Spring通过在我的java对象中使用@Value注释将其转换为字节数组。
示例:
hex.value=CB53CD20B2F222D9
在java中我有以下内容:
@Value("#{myProperties['hex.value'] ?: ''}")
private byte[] hexValue;
Spring目前只将String.getBytes()设置为hexValue,但我希望它转换为表示String的实际字节数组。例如,使用Commons-Codec Hex
有没有人知道如何配置Spring以便它不仅仅返回getBytes()?
答案 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;