- Spring AMQP项目介绍
Spring AMQP项目将Spring的核心思想应用于基于AMQP的消息解决方案的开发上。它提供了“template”这个高度抽象来发送和接收信息。它同样提供了消息驱动的实体,这些实体存在于“listener container”容器中。这些库不但使得AMQP资源的管理变得容易,与此同时促进了依赖注入和声明式配置的使用。在所有的情况下,你将看到许多Spring框架提供的类似于JMS的便利。
这个项目包含两部分:
1、spring-amqp的基础抽象;
2、spring-rabbit这个RabbitMQ的实现
特点:
1、异步处理没有绑定消息的监听容器;
2、RabbitTemplate发送和接收消息;
3、RabbitAdmin自动声明队列,交换和绑定。
- Spring AMQP快速入门
推荐开始在你的项目中使用spring-amqp的快捷方式是使用依赖管理系统,例如Maven和Gradle,配置片段如下:
<dependencies>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.4.0.RELEASE</version>
</dependency>
</dependencies>
使用Java编码的方式:
publicstaticvoid main(finalString... args)throwsException{
ConnectionFactory cf =newCachingConnectionFactory();
// set up the queue, exchange, binding on the broker
RabbitAdmin admin =newRabbitAdmin(cf);
Queue queue =newQueue("myQueue");
admin.declareQueue(queue);
TopicExchange exchange =newTopicExchange("myExchange");
admin.declareExchange(exchange);
admin.declareBinding(
BindingBuilder.bind(queue).to(exchange).with("foo.*"));
// set up the listener and container
SimpleMessageListenerContainer container =
newSimpleMessageListenerContainer(cf);
Object listener =newObject(){
publicvoid handleMessage(String foo){
System.out.println(foo);
}
};
MessageListenerAdapter adapter =newMessageListenerAdapter(listener);
container.setMessageListener(adapter);
container.setQueueNames("myQueue");
container.start();
// send something
RabbitTemplate template =newRabbitTemplate(cf);
template.convertAndSend("myExchange","foo.bar","Hello, world!");
Thread.sleep(1000);
container.stop();
}
使用Spring的方式:
publicstaticvoid main(finalString... args)throwsException{
AbstractApplicationContext ctx =
newClassPathXmlApplicationContext("context.xml");
RabbitTemplate template = ctx.getBean(RabbitTemplate.class);
template.convertAndSend("Hello, world!");
Thread.sleep(1000);
ctx.destroy();
}
publicclassFoo{
publicvoid listen(String foo){
System.out.println(foo);
}
}
<!--context.xml -->
<rabbit:connection-factoryid="connectionFactory"/>
<rabbit:templateid="amqpTemplate"connection-factory="connectionFactory"
exchange="myExchange"routing-key="foo.bar"/>
<rabbit:adminconnection-factory="connectionFactory"/>
<rabbit:queuename="myQueue"/>
<rabbit:topic-exchangename="myExchange">
<rabbit:bindings>
<rabbit:bindingqueue="myQueue"pattern="foo.*"/>
</rabbit:bindings>
</rabbit:topic-exchange>
<rabbit:listener-containerconnection-factory="connectionFactory">
<rabbit:listenerref="foo"method="listen"queue-names="myQueue"/>
</rabbit:listener-container>
<beanid="foo"class="foo.Foo"/>
相关推荐
压缩包包含两部分,spring-amqp为java版的Spring AMQP的实现,spring-amqp-sample为补充版(也可作为快速入门的)
RabbitMQ入门 1. Java客户端——基础代码 2. Java客户端——Spring AMQP
入门 Spring AMQP 学分 @spring.io 的教程
你会使用Spring AMQP的RabbitTemplate内置应用系统来发布消息和使用一个MessageListenerAdapter POJO来订阅消息 git克隆 gradle bootRun 需要 大约几十分钟 一款文本编辑器或者IDE 你也可以从这个项目中入门代码...
弹簧示例Spring 示例:这些示例背后的想法是提供有关如何设置不同替代方案以使用 Spring 框架及其不同模块的快速入门指南。 将有(正在进行的)几个级别,并将对其进行枚举。 项目必须是基于 Groovy 的,但有时可以...
Elasticsearch快速入门 22、尚硅谷-SpringBoot高级-检索-SpringBoot整合Jest操作ES 23、尚硅谷-SpringBoot高级-检索-整合SpringDataElasticsearch 24、尚硅谷-SpringBoot高级-任务-异步任务 25、尚硅谷-SpringBoot...
对于其他技术,视频包含快速入门讲解; 课程目录: 00、尚硅谷_SpringBoot_源码、课件 1、尚硅谷-SpringBoot高级-缓存-JSR107简介 2、尚硅谷-SpringBoot高级-缓存-Spring缓存抽象简介 3、尚硅谷-SpringBoot高级-...
9.4.1 Spring Integration 快速入门 395 9.4.2 Message 395 9.4.3 Channel 395 9.4.4 Message EndPoint 398 9.4.5 Spring Integration Java DSL 400 9.4.6 实战 400 第10 章 Spring Boot 开发部署与测试 407 10.1 ...
9.4.1 Spring Integration 快速入门 395 9.4.2 Message 395 9.4.3 Channel 395 9.4.4 Message EndPoint 398 9.4.5 Spring Integration Java DSL 400 9.4.6 实战 400 第10 章 Spring Boot 开发部署与测试 407 10.1 ...
9.4.1 Spring Integration 快速入门 395 9.4.2 Message 395 9.4.3 Channel 395 9.4.4 Message EndPoint 398 9.4.5 Spring Integration Java DSL 400 9.4.6 实战 400 第10 章 Spring Boot 开发部署与测试 407 10.1 ...
当一条消息在spring-boot-starter-amqp库中失败并配置了指数退避机制时,Rabbit会将消息返回到队列顶部并阻塞队列,直到消息被使用为止。 解决方案 该库引入了一种重试机制,该机制不会阻塞主队列,请参考现有技术。...
RabbitMQ SpringBoot入门基本网址: : 兔子MQ 安装并启动服务器 使用命令“ rabbitmq-server”启动服务器,然后使用来宾/来宾启动 或添加用户 使用Spring Boot 了解AMQP结构在/ config中queue()方法创建一个AMQP...