消息過濾器基於sql的語法。
producer部分代碼
MapMessage message1 = session.createMapMessage();
message1.setIntProperty("age",32);
message1.setString("name", "張三");
message1.setInt("age", 32);
MapMessage message2 = session.createMapMessage();
message1.setIntProperty("age",42);
message2.setString("name", "李四");
message2.setInt("age", 42);
MapMessage message3 = session.createMapMessage();
message1.setIntProperty("age",52);
message3.setString("name", "王五");
message3.setInt("age", 52);
producer.send(message1);
producer.send(message2);
producer.send(message3);
consumer部分代碼
MessageConsumer consumer = session.createConsumer(queue_2,"age > 40");
注意:過濾是相對於Message屬性的過濾,不是message內容。所以要想過濾,就得設置Message屬性。
最後得到的結果是李四跟王五。