Создание объекта Dynami c на основе тела сообщения Amazon SQS (приложение Spring) - PullRequest
0 голосов
/ 23 января 2020

Я использую Spring Cloud AWS для прослушивания очереди, сообщения которой имеют "метаданные" и "тело":

{
 "metadata": {
    "objectType": "Rabbit"
 },
  "body": {
   "color": "white"
   "favoriteFood": "carrots"
  }
}

Эта же очередь может также дать мне сообщение, подобное этому:

{
 "metadata": {
    "objectType": "Laptop"
 },
  "body": {
   "ram": "16GB",
   "model": "Macbook Pro"
  }
}

Мой слушатель:

@Service
public class MyListener {

    @SqsListener(value = "${my.queue.queuename}")
    public void handleMessage(MyMessage myMessage) {
        System.out.println("Message received from queue: " + myMessage);    
    }
}

Объект сообщения:

@JsonIgnoreProperties(ignoreUnknown = true)
public class MyMessage {

    @JsonProperty(value = "metadata")
    private MetaData metadata;

    @JsonProperty(value = "body")
    private JsonNode body;

    // getters and setters
}

Какой хороший способ создать объект «Кролик» или «Портативный компьютер» динамически основывается на теле сообщения?

...