Java快速上手轻量级消息队列 Apache-ActiveMQ
2018-08-08 本文已影响2人
壳叔
image
本文由黑壳博客发布
本文来源快速上手轻量级消息队列 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