pom.xml
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!--springmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.9.RELEASE</version>
</dependency>
<!--rabbit-mq-->
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.4.5.RELEASE</version>
</dependency>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>rabbit-spring</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!--springmvc-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!--spring-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
springmvc.xml
<!--启用 spring 注解-->
<context:component-scan base-package="com.rabbitmq.spring"></context:component-scan>
<mvc:annotation-driven/>
spring.xml
<rabbit:connection-factory id="connectionFactory" host="127.0.0.1" username="guest" password="guest" port="5672" />
<!--声明模板-->
<rabbit:template id="amqpTemplate" exchange="test_rmq_exchange" connection-factory="connectionFactory" />
<!--创建队列queue,路由exchange及绑定binding关系-->
<rabbit:queue id="test_queue_id" name="test_queue" durable="true" auto-delete="false" exclusive="false" />
<rabbit:topic-exchange name="test_rmq_exchange" durable="true" auto-delete="false">
<rabbit:bindings>
<rabbit:binding queue="test_queue" pattern="test_queue_patt"/>
</rabbit:bindings>
</rabbit:topic-exchange>
<!-- 消费者 -->
<bean name="RabbitmqConsumer" class="com.rabbitmq.spring.RabbitmqConsumer"/>
<!-- 配置监听 -->
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener queues="test_queue_id" ref="RabbitmqConsumer"/>
</rabbit:listener-container>
RabbitmqConsumer.java
public void onMessage(Message message) {
System.out.print("Msg consumed:");
System.out.println(new String(message.getBody()));
}
RabbitmqController.java
@Resource
private RabbitTemplate amqpTemplate;
@RequestMapping(value = "/rmq.do")
public void sendMsg(HttpServletResponse response) {
try {
for (int i = 0; i < 5; i++){
amqpTemplate.convertAndSend("test_rmq_exchange", "test_queue_patt", "rmqProducer-sendMsg.......");
System.out.println("One Msg sended.....");
}
response.getWriter().write("message sended....................");
} catch (Exception e) {
}
}
完整项目地址:https://u695858.pipipan.com/fs/695858-231400322
密码:668796