Spring config に XStream JavaBeanConverter を登録したいと思います。以下のように JavaBeanConverter が登録されているテスト例を参照してください。
xstream.registerConverter(new JavaBeanConverter(xstream.getClassMapper(), "class"), -20);
しかし、春の設定でどのように設定すればよいですか。
現在、私の春の設定は以下のように設定されています
<bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1" />
<property name="mediaTypes">
<map>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</map>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" >
<property name="renderedAttributes" value="document" />
</bean>
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="marshaller">
<bean class="org.springframework.oxm.xstream.XStreamMarshaller" p:autodetectAnnotations="true">
<property name="encoding" value="UTF-8" />
</bean>
</property>
<property name="contentType" value="application/xml;charset=UTF-8" />
<property name="modelKey" value="person" />
</bean>
</list>
</property>
<property name="ignoreAcceptHeader" value="true" />
</bean>
Alias と Converter に xstream アノテーションを使用しています。
JavaBeanConverter からカスタム コンバーターを拡張してみました。通常のプロパティは正常にシリアル化されますが、getXXX メソッドをシリアル化する必要があります。
public class MyCustomConverter extends JavaBeanConverter {
public MyCustomConverter(Mapper mapper) {
super(mapper);
}
@Override... marshal.. unmarshal... canConvert methods...
}
どうもありがとう!