首页>代码>Spring Boot整合Apache ActiveMQ实现发送消息的实例>/accessing-headers/src/main/java/com/memorynotfound/integration/OrderSender.java
package com.memorynotfound.integration;
import org.apache.activemq.command.ActiveMQQueue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Service;
import javax.jms.DeliveryMode;
import javax.jms.Message;
import java.util.UUID;
import static com.memorynotfound.integration.ActiveMQConfig.ORDER_QUEUE;
@Service
public class OrderSender {
private static Logger log = LoggerFactory.getLogger(OrderSender.class);
@Autowired
private JmsTemplate jmsTemplate;
public void sendQueue(Order order) {
log.info("sending with convertAndSend() to " + ORDER_QUEUE + " <" + order + ">");
jmsTemplate.convertAndSend(ORDER_QUEUE, order, m -> {
log.info("setting standard JMS headers before sending");
m.setJMSCorrelationID(UUID.randomUUID().toString());
m.setJMSExpiration(1000);
m.setJMSMessageID("message-id");
m.setJMSDestination(new ActiveMQQueue(ORDER_QUEUE));
m.setJMSReplyTo(new ActiveMQQueue(ORDER_QUEUE));
m.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
m.setJMSPriority(Message.DEFAULT_PRIORITY);
m.setJMSTimestamp(System.nanoTime());
m.setJMSType("type");
log.info("setting custom JMS headers before sending");
m.setStringProperty("jms-custom-header", "this is a custom jms property");
m.setBooleanProperty("jms-custom-property", true);
m.setDoubleProperty("jms-custom-property-price", 0.0);
return m;
});
}
}

最近下载
最近浏览