springamqp是利用spring核心技术实现访问基于AMQP协议的消息服务器的解决方案,是spring的一个子项目,他并不是一个具体的实现,而是提供了高级接口,具体实现springamqp的项目有spring-rabbit,这里介绍如何整合springamqp、rabbitmq。
构建maven项目,引入spring-rabbit依赖。
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>2.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
纯java实现,无需spring配置文件:
自定义消息接收监听器 MyRabbitMessageListener.java
package com.xxx.springamqp.listener;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
import org.springframework.stereotype.Component;
@Component
public class MyRabbitMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
String body = new String(message.getBody());
System.out.println("server receive message : "+body);
}
}
RabbitMQStarter.java启动类
package com.xxx.springamqp;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import com.xxx.springamqp.listener.MyRabbitMessageListener;
public class RabbitMQStarter {