我想编写一个可以包装另一个 MessageConverter 的 MessageConverter 类。此 MessageConverter 将调用子转换器,假定它生成一个 TextMessage。它将获取有效负载并 GZIP 压缩它,创建一个 BytesMessage 最终返回给发送者。
问题出在 fromMessage() 中。我可以将有效负载转换回字符串,但随后我想创建一个“虚拟”TextMessage 将字符串填充到然后传递给子 MessageConverter 的 fromMessage() 方法。在那里我碰壁了,因为我无法在没有 JMS 会话对象的情况下创建 TextMessage,而且似乎根本无法在这种情况下获得会话。
我可以创建额外的属性来将更多的东西连接到这个类,但看起来我什至不能轻松地从 JMSTemplate 对象获取会话,而且我无法想象我还需要什么。
我即将在此代码中创建一个私有 TextMessage 实现,只是为了为子 MessageConverter 包装一个字符串。该类将需要大量的虚拟方法来充实界面,所有这些打字都会让婴儿耶稣哭泣。
任何人都可以提出更好的方法吗?