package org.xmx0632.deliciousfruit.demo.jms.simple;
import java.util.HashMap;
import java.util.Map;
import javax.jms.Destination;
import org.springframework.jms.core.JmsTemplate;
import org.xmx0632.deliciousfruit.entity.Admin;
/**
* JMS用户变更消息生产者.
*
* 使用jmsTemplate将用户变更消息分别发送到queue与topic.
*
* @author calvin
*/
public class NotifyMessageProducer {
private JmsTemplate jmsTemplate;
private Destination notifyQueue;
private Destination notifyTopic;
public void sendQueue(final Admin user) {
sendMessage(user, notifyQueue);
}
public void sendTopic(final Admin user) {
sendMessage(user, notifyTopic);
}
/**
* 使用jmsTemplate最简便的封装convertAndSend()发送Map类型的消息.
*/
private void sendMessage(Admin user, Destination destination) {
Map map = new HashMap();
map.put("userName", user.getName());
map.put("email", user.getEmail());
jmsTemplate.convertAndSend(destination, map);
}
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
public void setNotifyQueue(Destination notifyQueue) {
this.notifyQueue = notifyQueue;
}
public void setNotifyTopic(Destination nodifyTopic) {
this.notifyTopic = nodifyTopic;
}
}