В соответствии с документацией: https://docs.spring.io/spring-amqp/docs/2.2.5.RELEASE/reference/html/#async на основе аннотаций
У нас могут быть разные обработчики сообщений, основанные на преобразованном типе класса, например:
@RabbitListener(id="multi", queues = "someQueue")
@SendTo("my.reply.queue")
public class MultiListenerBean {
@RabbitHandler
public String thing2(Thing2 thing2) {
...
}
@RabbitHandler
public String cat(Cat cat) {
...
}
@RabbitHandler
public String hat(@Header("amqp_receivedRoutingKey") String rk, @Payload Hat hat) {
...
}
@RabbitHandler(isDefault = true)
public String defaultMethod(Object object) {
...
}
}
Я полагаю, что это не будет большой производительностью, поскольку для приведения входящей полезной нагрузки необходимо выполнить метод проб и ошибок.
Вместо этого, как фильтровать на основе условия, скажем, значение заголовка? Если header ['operation'] = "order", тогда приведите полезную нагрузку сообщения к классу Order.