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

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

本文由黑壳博客发布

本文来源快速上手轻量级消息队列 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思源笔记

    1063 引用 • 3455 回帖 • 165 关注
  • Java

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

    3194 引用 • 8214 回帖
  • 壳叔
    48 引用 • 31 回帖
  • Spring

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

    946 引用 • 1460 回帖 • 1 关注

相关帖子

欢迎来到这里!

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

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