1. 程式人生 > >Spring AMQP 源碼分析 08 - XML 配置

Spring AMQP 源碼分析 08 - XML 配置

logs blog http cti ase xsd -name border 分析

### 準備

## 目標

通過 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 配置