RabbitMQ与springmvc结合--简单示例

来源:互联网 发布:广电网络的宽带怎么样 编辑:程序博客网 时间:2024/05/22 10:29

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

原创粉丝点击