Spring-rabbit的简单应用
1.创建Maven工程并导入依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| <dependencies>
<!-- https: <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>2.2.2.RELEASE</version> </dependency>
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.2.RELEASE</version> </dependency> <!-- https: <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.7.3</version> </dependency> <!-- https: <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- https: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <!-- https: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> </dependencies>
|
2. 编写applicationContext.xml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit" xsi:schemaLocation="http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit-1.4.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- 定义RabbitMQ的连接工厂 --> <rabbit:connection-factory id="connectionFactory" host="localhost" port="5672" virtual-host="host100" username="admin" password="admin" />
<!-- 定义Rabbit模板,指定连接工厂以及定义exchange --> <rabbit:template id="rabbitTemplate" connection-factory="connectionFactory" exchange="fanoutExchange"/>
<!-- MQ的管理,包括队列,交换机声明等 --> <rabbit:admin connection-factory="connectionFactory"/>
<!-- 定义交换机 --> <rabbit:fanout-exchange name="fanoutExchange" auto-declare="true"> <rabbit:bindings> <rabbit:binding queue="fanout_Queue"></rabbit:binding> </rabbit:bindings> </rabbit:fanout-exchange>
<!-- 定义队列 --> <rabbit:queue name="fanout_Queue" auto-declare="true" durable="true"/>
<!-- 监听队列 --> <rabbit:listener-container connection-factory="connectionFactory"> <rabbit:listener queue-names="fanout_Queue" ref="consumer" method="listen"></rabbit:listener> </rabbit:listener-container>
<!-- 消费者 --> <bean id="consumer" class="com.self.rabbitmq.springrabbit.SpringRabbitConsumer"></bean>
</beans>
|
3.读取配置文件,获取Rabbit模板对象(生产者)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package com.self.rabbitmq.springrabbit;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringRabbitProducer {
public static void main(String[] args) throws InterruptedException {
ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); RabbitTemplate rabbitTemplate = app.getBean("rabbitTemplate", RabbitTemplate.class); rabbitTemplate.convertAndSend("Hello Spring-rabbit");
Thread.sleep(1000); app.close(); } }
|
4. 消费者
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package com.self.rabbitmq.springrabbit;
public class SpringRabbitConsumer {
public void listen(String consumer){
System.out.println("消费者 : " + consumer);
} }
|
结果输出截图 :

5.结论
通过读取Spring的配置文件applicationContext.xml的形式,创建连接rabbitmq的连接工厂,并声明交换机与队列等。无需写大量的代码,只需要写配置文件即可。