### 准备

## 目标

通过 XML 配置文件使用 Spring AMQP

## 前置知识

《Spring AMQP 源码分析 07 - MessageListenerAdapter》

## 相关资源

Sample code:<https://github.com/gordonklg/study>,rabbitmq module
源码版本:Spring AMQP 1.7.3.RELEASE

## 测试代码

gordon.study.rabbitmq.springamqp.XmlConfig.java

 
springamqp1.xml

### 分析

## 如何查看配置

Spring 项目普遍采用 XSD 定义 XML 文件格式,具体可以查看对应的 XSD 文件: http://www.springframework.org/schema/rabbit/spring-rabbit.xsd
 
XML 文件解析包为 org.springframework.amqp.rabbit.config,包中的各个 Parser 类用于解析对应的 XML 元素,创建相应的 BeanDefinition,指导 IOC 容器创建实例。例如,ListenerContainerParser 类用于解析 <rabbit:listener-container> 元素,创建出两个 RootBeanDefinition,分别表示 listener-container 和 listener(对应的 class 为 SimpleMessageListenerContainer 和 MessageListernerAdapter)。
通过 Parser 类,可以了解 XML 中的元素与属性与 Spring AMQP 实现代码的对应关系。
 
具体细节不在本文范畴内,以后有机会会分析 Spring 源码。
 

## 示例配置详解

connection-factory 定义了连接工厂,其实现类是 CachingConnectionFactory。
 
listener 定义了消息监听器,其实现类是 MessageListernerAdapter。ref 对应 delegate 属性,method 对应 defaultListenerMethod 属性。queue-names 表示整个 ListenerContainer 监听的队列列表,它实际上对应 SimpleMessageListenerContainer 的 queueNames 属性。
 
 

Spring AMQP 源码分析 08 - XML 配置的更多相关文章

  1. Spring AMQP 源码分析 07 - MessageListenerAdapter

    ### 准备 ## 目标 了解 Spring AMQP 如何用 POJO 处理消息 ## 前置知识 <Spring AMQP 源码分析 04 - MessageListener> ## 相 ...

  2. Spring AMQP 源码分析 06 - 手动消息确认

    ### 准备 ## 目标 了解 Spring AMQP 如何手动确认消息已成功消费 ## 前置知识 <Spring AMQP 源码分析 04 - MessageListener> ## 相 ...

  3. Spring AMQP 源码分析 05 - 异常处理

    ### 准备 ## 目标 了解 Spring AMQP Message Listener 如何处理异常 ## 前置知识 <Spring AMQP 源码分析 04 - MessageListene ...

  4. Spring AMQP 源码分析 02 - CachingConnectionFactory

    ### 准备 ## 目标 了解 CachingConnectionFactory 在默认缓存模式下的工作原理   ## 前置知识   <Spring AMQP 源码分析 01 - Impatie ...

  5. Spring AMQP 源码分析 04 - MessageListener

    ### 准备 ## 目标 了解 Spring AMQP 如何实现异步消息投递(推模式) ## 前置知识 <RabbitMQ入门_05_多线程消费同一队列> ## 相关资源 Quick To ...

  6. Spring Boot 源码分析 数据源 + Mybatis 配置

    公司今年开始使用 Spring Boot 开发,当然使用 Spring Boot 也是大势所趋,尤其是现在微服务的趋向,当然是选择基于Spring Boot 的 Spring Cloud.(所谓的 S ...

  7. Spring AMQP 源码分析 03 - MessageConverter

    ### 准备 ## 目标 了解 Spring AMQP 消息转化实现   ## 相关资源 Quick Tour for the impatient:<http://docs.spring.io/ ...

  8. Spring AMQP 源码分析 01 - Impatient

    ### 准备   ## 目标 了解 Spring AMQP 核心代码   ## 前置知识 RabbitMQ 入门   ## 相关资源   Quick Tour for the impatient:&l ...

  9. 精尽Spring MVC源码分析 - 寻找遗失的 web.xml

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

随机推荐

  1. UNDFTD x Nike Air Max 97 OG Black

    The UNDFTD x Nike Air Max 97 OG Black is releasing way sooner than anticipated. This collaborative r ...

  2. Filter—过滤器

    过滤器的作用是什么? 1.拦截传入的请求和传出的响应,能拿到请求和响应中的数据 2.监视,修改,或处理正在客户端和服务器之间交换的数据流 3.利用过滤器的执行时机,实现Web程序的预处理,和后期的处 ...

  3. Object-C-NSArray

    NSArray *fruitArray=[[NSArray alloc] initWithObjects:@"apple",@"banana",@"p ...

  4. 公司里面用的iTextSharp(教程)---关于PDF的属性设置

    下面介绍下怎么添加属性,代码如下: protected void Button1_Click(object sender, EventArgs e) {   Document doc = new Do ...

  5. 持续集成之三:Maven私服Nexus使用

    环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 apache-tomcat-7.0.90 mysql-5.7.23 ...

  6. Linux命令: 在线练习网址

    1.https://www.tutorialspoint.com/unix_terminal_online.php 2.从 这里 https://www.tutorialspoint.com/inde ...

  7. Python: 在序列上执行聚集函数(比如sum() , min() , max() )

    在序列上执行聚集函数(比如sum() , min() , max() ) eg1: >>>nums = [1, 2, 3, 4, 5]>>>s = sum(x * ...

  8. JSP禁用缓存常用方法

    内容主要转自:http://www.cnblogs.com/linjiqin/archive/2011/07/20/2111627.html jsp页面禁止缓存设置 1.客户端缓存要在<head ...

  9. Linux基础命令---ckconfig

    chkconfig 启动或者关闭系统服务,设置服务的运行级别,该指令并不会立刻启动或者停止服务,而是在开机的时候发生效果. chkconfig提供了一个简单的命令行工具,用于维护/etc/rc[0-6 ...

  10. 启动Tomcat服务时,出现org.apache.catalina.startup.VersionLoggerListener报错

    启动Tomcat服务时,出现org.apache.catalina.startup.VersionLoggerListener报错解决办法:打开Tomcat安装后目录,进入conf文件夹,找到配置文件 ...