zoukankan      html  css  js  c++  java
  • 【Java Web开发学习】Spring消息-ActiveMQ发送消息

    ActiveMQ发送消息

    转载:http://www.cnblogs.com/yangchongxing/p/9042401.html

    Java消息服务(Java Message Service, JMS)是一个Java标准,定义了使用消息代理的通用API。
    ActiveMQ是一个开源消息代理产品,也是使用JMS进行异步消息传递的最佳选择。
    下载ActiveMQ:http://activemq.apache.org
    下载解压后进入相应的bin目录:activemq start

    借助JMS连接工厂通过消息代理发送消息

    创建JMS连接工厂
    默认的账户:
    ActiveMQConnection.DEFAULT_USER
    ActiveMQConnection.DEFAULT_PASSWORD
    ActiveMQConnection.DEFAULT_BROKER_URL

    Java配置

    @Bean
    public ConnectionFactory connectionFactory() {
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
        factory.setBrokerURL("tcp://localhost:61616");
        return factory;
    }

    XML配置

    <bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory" p:brokerURL="tcp://localhost:61616"/>

    声明消息目的地

    队列

    Java配置

    @Bean
    public ActiveMQQueue queue() {
        ActiveMQQueue queue = new ActiveMQQueue();
        queue.setPhysicalName("mvc.queue");
        return queue;
    }

    XML配置

    <bean id="queue" class="org.apache.activemq.command.ActiveMQQueue" c:_="mvc.queue"/>

    主题

    Java配置

    @Bean
    public ActiveMQTopic topic() {
        ActiveMQTopic topic = new ActiveMQTopic();
        topic.setPhysicalName("mvc.topic");
        return topic;
    }

    XML配置

    <bean id="topic" class="org.apache.activemq.command.ActiveMQTopic" c:_="mvc.topic"/>

    使用传统JMS方式发送和接受消息

    public void sendMsg() throws Exception {
        Connection conn = new ActiveMQConnectionFactory("tcp://localhost:61616");
        Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Destination destination = new ActiveMQQueue("mvc.queue");
        MessageProducer producer = session.createProducer(destination);
        TextMessage message = session.createTextMessage();
        message.setText("hello");
        producer.send(message);
        session.close();
        conn.close();
    }
    public void receiveMsg() throws Exception {
        Connection conn = new ActiveMQConnectionFactory("tcp://localhost:61616");
        conn.start();
        Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Destination destination = new ActiveMQQueue("mvc.queue");
        MessageConsumer consumer = session.createConsumer(destination);
        TextMessage message = (TextMessage) consumer.receive();
        System.out.println(message.getText());
        session.close();
        conn.close();
    }

    定义JmsTemplate对象
    Java配置

    @Bean
    public JmsTemplate jmsTemlate(ConnectionFactory connectionFactory, ActiveMQQueue queue) {
        JmsTemplate template = new JmsTemplate(connectionFactory);
        template.setDefaultDestination(queue);
        return template;
    }

    XML配置

    <bean id="jmsTemlate" class="org.springframework.jms.core.JmsTemplate" c:_-ref="connectionFactory" p:defaultDestination="queue"/>

    使用JMS模板方式发送和接受消息

    public void sendMsg() {
        jmsOperations.send(new MessageCreator() {
            @Override
            public Message createMessage(Session session) throws JMSException {
                TextMessage message = session.createTextMessage();
                message.setText("Hello Jms.");
                return message;
            }
        });
    }
    public void receiveMsg() throws JMSException {
        TextMessage message = (TextMessage) jmsOperations.receive();
        System.out.println(message.getText());
    }

    使用Convert

    public void sendMsg() {
        jmsOperations.convertAndSend("Hello");
    }
    public void receiveMsg() {
        String message = (String) jmsOperations.receiveAndConvert();
        System.out.println(message);
    }

    待续...

  • 相关阅读:
    Discuz 网站移至 Ubuntu 14.04.4 LTS VPS 配置
    ubuntu的一些常用命令,测试版本:Ubuntu 12.04.5 LTS
    文本的水平对齐方式,带来的一系列问题
    庆祝我的Blog开张了,今天起和大家一起见证一款原生的富文本编辑组件FoxJsonRichView的诞生过程。
    竖直导航(一)
    测试
    第七次作业
    第六次作业
    第四次作业
    第五次作业
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/9042401.html
Copyright © 2011-2022 走看看