Java 快速上手轻量级消息队列 Apache-ActiveMQ

本贴最后更新于 2214 天前,其中的信息可能已经天翻地覆

本文由黑壳博客发布

本文来源快速上手轻量级消息队列 Apache-ActiveMQ - 黑壳网 http://blog.bhusk.com/articles/2018/03/05/1520253269039

壳叔搞笑时间

赶报表,晚餐没吃就喝了杯水。文员妹纸下班走时问我:要不要帮你叫外卖?
我回她:刚喝了杯水,不饿。
她伸出一只手的大拇指和小拇指在空中晃了几晃,我纳闷问:让我打你电话?
她略尴尬道:说你 666……
我。。还有这种操作 ~

正文

了解消息队列

http://blog.bhusk.com/articles/2018/03/05/1520250548267

程序员要的干货

开始搬运干货

Java Pom 文件
现在 Maven 项目可以大大减少你的开发时间。


 
    <properties>
        <spring.version>4.2.5.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-core</artifactId>
            <version>5.7.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-context</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

 

接下来 配置文件
common.xml

    <context:annotation-config/>

    <!-- activemq 提供的connectionFactory-->
    <bean id="targetConnectionFactory"class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://127.0.0.1:61616"/>
    </bean>
    <!-- spring jms 提供的connectionFactory连接池-->
    <bean id="connectionFactory"class="org.springframework.jms.connection.SingleConnectionFactory">
        <property name="targetConnectionFactory" ref="targetConnectionFactory"/>
    </bean>

    <!--队列目的地 点对点 -->
    <bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue">
        <constructor-arg value="queue"/>
    </bean>

    <!--主题模式-->
    <bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">
        <constructor-arg value="topic"/>
    </bean>

product.xml 生产的配置文件

<import resource="common.xml"/>
<!--jms 用来发送消息 -->
<bean id="jmsTemplale" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="connectionFactory"></property>
</bean>

<bean class="com.bhsuk.producer.ProducerServiceImpl"/>

生产的配置文件,配置完了,开始写 product 的代码吧
ProducerServiceImpl.java


public class ProducerServiceImpl implements ProducerService{  
  
    @Autowired  
  private JmsTemplate jmsTemplate;  
  @Resource(name = "topicDestination")  
    private Destination destination;  
  
 public void sendMessage(final String message) {  
        // 使用jmstemplate发送消息  
  jmsTemplate.send(destination, new MessageCreator() {  
            public Message createMessage(Session session) throws JMSException {  
                // 创建消息体  
  TextMessage textmessage = session.createTextMessage(message);  
  System.out.println("消息已经发送"+message);  
 return textmessage;  
  }  
        });  
  }  
}@Autowired  
private JmsTemplate jmsTemplate;  
@Resource(name = "topicDestination")  
private Destination destination;  
  
public void sendMessage(final String message) {  
    // 使用jmstemplate发送消息  
  jmsTemplate.send(destination, new MessageCreator() {  
        public Message createMessage(Session session) throws JMSException {  
            // 创建消息体  
  TextMessage textmessage = session.createTextMessage(message);  
  System.out.println("消息已经发送"+message);  
 return textmessage;  
  }  
    });  
}

本文只粘贴核心代码,如果需要详细代码或测试方法,可以去 GitHub 上观看更详细的代码。

消费配置文件 consumer.xml

    <!-- 公共配置消息 -->
    <import resource="common.xml"/>

    <!--cousumer 监听类-->
    <bean id="consumerListener" class="com.yunus.jms.consumer.ConsumerListener"/>
    <!--message 监听容器 -->
    <bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="connectionFactory" ref="connectionFactory"/>
        <property name="destination" ref="topicDestination"/>
        <property name="messageListener" ref="consumerListener"/>
    </bean>

既然有生产和消费 生产写完了,那就得写消费了。
ConsumerListener.java

public class ConsumerListener implements MessageListener{  
  
    public void onMessage(Message message) {  
        TextMessage textMessage = (TextMessage) message;  
 try {  
            System.out.println("接受消息为"+textMessage.getText());  
  } catch (JMSException e) {  
            e.printStackTrace();  
  }  
    }  
}

直达 GitHub 项目链接 (懒人专用)

https://github.com/ykz200/Spring-ActiveMQ

关于我们

程序员太辛苦了

请善待你们身边的每一位程序员~

欢迎在评论写下你的程序员自黑体呦,嗯,相信你可以滴~~~~~~

以上内容,均来自互联网~

欢迎扫描二维码加入我们的组织
黑壳网交流群 Qq:200408242


  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1090 引用 • 3467 回帖 • 296 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3165 引用 • 8206 回帖
  • 壳叔
    48 引用 • 31 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    938 引用 • 1456 回帖 • 163 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...