Вот FactoryBean для создания вашего байтового массива:
public class ByteArrayFactoryBean extends AbstractFactoryBean<byte[]>{
@Override
public Class<?> getObjectType(){
return byte[].class;
}
private String data;
@Required
public void setData(final String data){
this.data = data;
}
@Override
protected byte[] createInstance() throws Exception{
final String[] tokens = data.split("\\s*,\\s*");
final byte[] output = new byte[tokens.length];
for(int i = 0; i < tokens.length; i++){
output[i] = Byte.decode(tokens[i]).byteValue();
}
return output;
}
}
Использование:
<bean class="foo.bar.SomeBean">
<property name="bytes">
<list>
<bean class="foo.bar.ByteArrayFactoryBean">
<property name="data" value="0x03,0x4d" />
</bean>
</list>
</property>
</bean>
(Регистрация PropertyEditor
была бы более правильной, но и более трудоемкой)
Но если я правильно понимаю ваши комментарии, ваша настоящая проблема в том, что вы не знаете, как написать строку с экзотическими байтами? Вы можете использовать Unicode Escape :
System.out.println("H\u00e4\u00e4\u00e4\u00e4\u00e4hhh???");
Выход:
Hääääähhh ???
Конечно, вы также можете использовать этот синтаксис в файлах Spring XML.