在我的应用程序中,我有一个路由器,它可以将XML标签发送到适当的频道:
serviceChannel
使用此XML会将每个标记路由到activityChannel
和<root>
<service attr1="x" attr2="y" />
<activity anotherAttr="W" />
</root>
class Service {
private String attr1;
private String attr2;
/* Setter and getter omitted */
}
我的服务激活器(S)POJO是这样的:
<!-- Service activators -->
<int:service-activator input-channel="serviceChannel" method="schedule">
<bean class="it.mypkg.Service" />
</int:service-activator>
这是applicationContext.xml配置:
Node
路由器将整个bean
发送给Node
,我需要“手动”提取属性。
有一种方法可以“解组”attr1
,attr2
和@XmlRootElement
我将获得XML中提供的值吗?
通常我使用简单的Unmarshaller(使用JAXB)并添加注释@XmlAttribute
,Service
等来执行此操作。
我认为在传递给POJO之前我需要使用SI-XML UnmarshallingTransformer但我真的不知道如何做到这一点...此外,这应该是“足够通用”来处理所有标签(当然,所有POJO类都像{ {1}}和Activity
将@XmlAttribute
等)