ActiveMQ与Spring整合

配置文件中引入ActiveMQ.xml




    

    
    
    
    


    
    
    
        
        
        
        
        
        
    

    

    
    
        
        
        
        
    

    
    
        
        
        
        
    


    


    

    
    
        
        
    

    
    
        
        
    
    

Queue生产者

/**
 * @description 队列消息生产者,发送消息到队列
 */
@Component("queueSender")
public class QueueSender {

    @Autowired
    @Qualifier("jmsQueueTemplate")
    private JmsTemplate jmsQueueTemplate;//通过@Qualifier修饰符来注入对应的bean

    /**
     * 发送一条消息到指定的队列(目标)
     *
     * @param queueName 队列名称
     * @param message   消息内容
     */
    public void send(String queueName, final String message) {
        jmsQueueTemplate.convertAndSend(queueName, message);
    }

}

Topic生产者


@Component("topicSender")
public class TopicSender {

    @Autowired
    @Qualifier("jmsTopicTemplate")
    private JmsTemplate jmsTemplate;

    /**
     * 发送一条消息到指定的队列(目标)
     *
     * @param topicName 队列名称
     * @param message   消息内容
     */
    public void send(String topicName, final String message) {
        jmsTemplate.convertAndSend(topicName, message);
    }
}

接口测试

@Controller
@RequestMapping("/activemq")
public class ActivemqController {

    @Resource
    private QueueSender queueSender;

    @Resource
    private TopicSender topicSender;

    /**
     * todo 开启activeMQ服务
     * 发送消息到队列
     * Queue队列:仅有一个订阅者会收到消息,消息一旦被处理就不会存在队列中
     * @param message
     * @return String
     */
    @ResponseBody
    @PostMapping("/queueSender")
    public String queueSender(@RequestParam("message") String message) {
        String opt = "";
        try {
            queueSender.send("test.queue", message);
            opt = "success";
        } catch (Exception e) {
            opt = e.getCause().toString();
        }
        return opt;
    }

    /**
     * 发送消息到主题
     * Topic主题 :放入一个消息,所有订阅者都会收到
     * 这个是主题目的地是一对多的
     *
     * @param message
     * @return String
     */
    @ResponseBody
    @PostMapping("/topicSender")
    public String topicSender(@RequestParam("message") String message) {
        String opt = "";
        try {
            topicSender.send("test.topic", message);
            opt = "success";
        } catch (Exception e) {
            opt = e.getCause().toString();
        }
        return opt;
    }
}

你可能感兴趣的:(ActiveMQ与Spring整合)