バイト配列を作成するための 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>
(a を登録するPropertyEditor
方が正確ですが、より多くの作業が必要になります)
しかし、私があなたのコメントを正しく理解していれば、あなたの実際の問題は、エキゾチックなバイトで文字列を書く方法がわからないということですか? Unicode エスケープを使用できます。
System.out.println("H\u00e4\u00e4\u00e4\u00e4\u00e4hhh???");
出力:
はぁぁぁぁぁぁぁぁぁぁぁぁん???
もちろん、Spring XML ファイルでもこの構文を使用できます。