RabbitMQ入門教程(十六):RabbitMQ與Spring集成

簡介

集成示例基本目錄結構

RabbitMQ入門教程(十六):RabbitMQ與Spring集成

一:引入相關依賴

引入Spring核心的依賴和spring-rabbit依賴,注意spring-rabbit依賴不要使用最新的版本,這裡使用的1.7.5.RELEASE,使用2.0.0的會報錯

<code><project>         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelversion>4.0.0/<modelversion>
<groupid>com.lin/<groupid>
<artifactid>rabbit_c2/<artifactid>
<version>0.0.1-SNAPSHOT/<version>
<properties>
<spring.version>4.2.3.RELEASE/<spring.version>
/<properties>

<dependencies>

<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-core/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-webmvc/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-context/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-context-support/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-aop/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-aspects/<artifactid>

<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-tx/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-jdbc/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-web/<artifactid>
<version>${spring.version}/<version>
/<dependency>


<dependency>
<groupid>junit/<groupid>
<artifactid>junit/<artifactid>
<version>4.12/<version>
<scope>test/<scope>
/<dependency>


<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-test/<artifactid>
<version>${spring.version}/<version>
<scope>test/<scope>
/<dependency>


<dependency>
<groupid>org.springframework.amqp/<groupid>
<artifactid>spring-rabbit/<artifactid>
<version>1.7.5.RELEASE/<version>
/<dependency>

<dependency>
<groupid>javax.validation/<groupid>
<artifactid>validation-api/<artifactid>
<version>1.1.0.Final/<version>

/<dependency>

<dependency>
<groupid>org.hibernate/<groupid>
<artifactid>hibernate-validator/<artifactid>
<version>5.0.1.Final/<version>
/<dependency>

/<dependencies>
/<project>
/<code>

二:配置Rabbit連接參數application.properties

<code>rabbit.host=127.0.0.1
rabbit.port=5672
rabbit.username=guest
rabbit.password=guest
rabbit.vhost=/
/<code>

三:配置Spring的配置文件

applicationContext.xml Spring總的配置文件

<code>
<beans> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
default-lazy-init="false">
<description>Spring總配置文件/<description>
<component-scan>
<annotation-config>
<spring-configured>

<bean>
<property>
<property>
<list>
<value>classpath*:/application.properties/<value>
/<list>

/<property>
/<bean>

<import>
/<beans>
/<code>

Spring對應的rabbit配置文件 applicationContext-rabbit.xml

<code>
<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/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd">

<connection-factory> host="${rabbit.host}"
port="${rabbit.port}"
username="${rabbit.username}"
password="${rabbit.password}"
virtual-host="${rabbit.vhost}"/>


<template>


<admin>


<queue>


<direct-exchange>
<bindings>
<binding>
/<bindings>

/<direct-exchange>


<bean>


<listener-container>
<listener>
/<listener-container>

/<connection-factory>/<beans>
/<code>

四:消息監聽

MessageConsumer.java

<code>package com.mengday.rabbitmq;

public class MessageConsumer implements MessageListener {

public void onMessage(Message message) {
System.out.println("Received:" + message);
}
}
/<code>

五:發送消息

<code>@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:conf/spring/applicationContext.xml" })
public class SpringRabbitTest extends AbstractJUnit4SpringContextTests {

@Autowired
private AmqpTemplate amqpTemplate;

@Test
public void sendMessage(){
Map<string> log = new HashMap<string>();
log.put("level", "info");
log.put("timestamp", new Date());
log.put("operateId", 666);
log.put("msg", "修改密碼,修改前密碼:123456,修改後密碼:111111");


amqpTemplate.convertAndSend("queueTestKey", log);
}
}
/<string>/<string>/<code>

六:運行結果

RabbitMQ入門教程(十六):RabbitMQ與Spring集成


本號主要用於發佈工作中比較常用實用的技術,更側重於乾貨,如有需要請關注本賬號,本號將持續發佈乾貨文章。


分享到:


相關文章: