spring rabbitmq集成

pom.xml加

<dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>4.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-amqp</artifactId>
            <version>1.7.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-rabbit</artifactId>
            <version>1.7.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>http-client</artifactId>
            <version>1.1.1.RELEASE</version>
        </dependency>
       
        <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
            <version>1.2.0.RELEASE</version>
        </dependency>
<!--公司的封装rabbitmq工具-->
 <dependency>
            <groupId>com.yonyou.f4</groupId>
            <artifactId>common</artifactId>
            <version>1.2.2</version>
        </dependency> 
 

2.War打包时 有些包不会打进去,统一放在了D:\tools\f4\apache-tomcat-8.0.36\shared\lib下,如果pom新dependcy包不起作用检查下是否在不打包的列表中,如是手工复制到tomcat-8.0.36\shared\lib下,比如在使用rabbitmq时用到spring-rabbit.jar 和spring-retry-1.2.0.RELEASE.jar需复制过去,不然启动时报错

3.spring xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:rabbit="http://www.springframework.org/schema/rabbit"
    xsi:schemaLocation="http://www.springframework.org/schema/aop   
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd   
        http://www.springframework.org/schema/beans   
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd   
        http://www.springframework.org/schema/context   
        http://www.springframework.org/schema/context/spring-context-3.2.xsd   
        http://www.springframework.org/schema/mvc   
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
        http://www.springframework.org/schema/util
        http://www.springframework.org/schema/util/spring-util-3.2.xsd  
        http://www.springframework.org/schema/tx   
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd 
        http://www.springframework.org/schema/rabbit 
        http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">

<!--     <context:component-scan base-package="com.yonyou.dms.web.controller" /> -->
<!--     <bean -->
<!--         class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> -->
<!--         <property name="viewResolvers"> -->
<!--             <list> -->
<!--                 <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" /> -->
<!--                 <bean -->
<!--                     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> -->
<!--                     <property name="prefix" value="/WEB-INF/jsp/" /> -->
<!--                     <property name="suffix" value=".jsp" /> -->
<!--                 </bean> -->
<!--             </list> -->
<!--         </property> -->
<!--         <property name="defaultViews"> -->
<!--             <list> -->
<!--                 JSON View -->
<!--                 <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" /> -->
                
<!--                 XML View -->
<!--                 <bean class="org.springframework.web.servlet.view.xml.MarshallingView"> -->
<!--                     <property name="marshaller"> -->
<!--                         <bean class="org.springframework.oxm.xstream.XStreamMarshaller" /> -->
<!--                     </property> -->
<!--                 </bean> -->
<!--             </list> -->
<!--         </property> -->
<!--     </bean> -->

        <!-- 换成如下写法 -->
<!--      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" -->
<!--         p:messageConverters-ref="messageConverters"> -->
<!--     </bean> -->
<!--     <util:list id="messageConverters"> -->
<!--         <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter" /> -->
<!--         <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /> -->
<!--         <bean class="org.springframework.http.converter.StringHttpMessageConverter" > -->
<!--              <property name="supportedMediaTypes"> -->
<!--                     <list> -->
<!--                         <value>text/plain;charset=UTF-8</value> -->
<!--                         <value>text/html;charset=UTF-8</value> -->
<!--                     </list> -->
<!--                 </property> -->
<!--         </bean> -->
<!--         <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" /> -->
<!--         <bean class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter" -->
<!--             p:marshaller-ref="xmlMarshaller" p:unmarshaller-ref="xmlMarshaller"> -->
<!--         </bean> -->
<!--         <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> -->
<!--             <property name="supportedMediaTypes"> -->
<!--                     <list> -->
<!--                         <value>application/json; charset=UTF-8</value> -->
<!--                         <value>application/x-www-form-urlencoded; charset=UTF-8</value> -->
<!--                         <value>multipart/form-data; charset=UTF-8</value> -->
<!--                     </list> -->
<!--             </property> -->
<!--             <property name="objectMapper"> -->
<!--                     <bean class="com.yonyou.dms.framework.filter.XssObjectMappper" id="XssObjectMappper"/> -->
<!--             </property> -->
<!--         </bean> -->
<!--     </util:list> -->
<!--     <bean id="xmlMarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller"> -->
<!--         <property name="streamDriver"> -->
<!--             <bean class="com.thoughtworks.xstream.io.xml.StaxDriver" /> -->
<!--         </property> -->
<!--     </bean> -->
     
     <beans profile="source">
        <mvc:annotation-driven validator="validator">
            <mvc:message-converters>
                <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter" />
                <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/plain;charset=UTF-8</value>
                            <value>text/html;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" id="MappingJackson2HttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>application/json; charset=UTF-8</value>
                            <value>application/x-www-form-urlencoded; charset=UTF-8</value>
                            <value>multipart/form-data; charset=UTF-8</value>
                        </list>
                    </property>
                    <property name="objectMapper">
                        <bean class="com.yonyou.dmsgms.framework.filter.XssObjectMappper" id="XssObjectMappper"/>
                    </property>
                </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>
        
        <!-- upload settings -->
        <bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="maxUploadSize" value="5242880"></property>
            <property name="resolveLazily" value="true"/> 
        </bean>
        
        <!-- 国际化配置 -->    
        <bean id="localeResolver"    
            class="org.springframework.web.servlet.i18n.CookieLocaleResolver" > 
            <property name="cookieName" value="language"></property>
           </bean> 
            
        <bean id="messageSource"    
            class="org.springframework.context.support.ResourceBundleMessageSource">    
            <property name="basenames">    
                <list>    
                    <value>messages/webValidate</value>    
                    <value>messages/manageValidate</value>
                    <value>messages/customerValidate</value>
                    <value>messages/partValidate</value>
                    <value>messages/repairValidate</value>
                    <value>messages/vehicleValidate</value>
                    <value>messages/retailValidate</value>
                    <value>messages/commonASValidate</value>
                    <value>messages/commonValidate</value>
                </list>    
            </property>    
        </bean> 
            
        <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">      
              <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>      
              <!-- 这里配置将使用上面国际化配置的messageSource -->    
              <property name="validationMessageSource" ref="messageSource"/>      
          </bean> 
          
          
          <!-- 权限拦截 -->
        <bean id="aclInterceptor" class="com.yonyou.f4.common.acl.interceptor.AclInterceptor">
            <property name="aclUserParamName" value="${f4.mvc.aclUser.key}"></property>
            <property name="anonymUID" value="${f4.mvc.aclUser.anonymUID}"></property>
            <property name="tenantIdParamName" value="${f4.mvc.tenant.key}"></property>
            <property name="aclManager" ref="aclManager"></property>
            <property name="preRes" ref="prepareResouce"></property>
            <property name="errorPage" value="error.jsp"></property>
    <!--         <property name="exclude"> -->
    <!--             <value><![CDATA[.*\.(js|css|jpg|htm|html|woff|bmp|jpeg|png|gif){1}]]></value> -->
    <!--         </property>不做权限验证 -->
        </bean>
        <bean id="prepareResouce" class="com.yonyou.dmsgms.framework.interceptors.acl.DmsPrepareResourceImpl">
        </bean>
        <bean id="aclManager" class="com.yonyou.f4.common.acl.impl.AclManagerImpl">
            <property name="cacheExpireTime" value="30"></property><!-- 单位分钟 -->
            <!-- <property name="redisFactory" ref="jedisFactory"></property> -->
            <property name="provider" ref="aclDataProvider"></property>
        </bean>
        <bean id="aclDataProvider" class="com.yonyou.dmsgms.framework.interceptors.acl.AclDmsDataProvider"></bean>
    
        
        <!-- DMS 系统拦截器 -->
        <bean id="dmsFrameworkInterceptor" class="com.yonyou.dmsgms.framework.interceptors.DMSFrameworkInterceptor"/>
        
        <!-- mvc 配置 -->
        <mvc:interceptors>
            <mvc:interceptor>
                <mvc:mapping path="/**"/>
                <ref bean="dmsFrameworkInterceptor"/>
            </mvc:interceptor>
    <!--         <mvc:interceptor> -->
    <!--             <mvc:mapping path="/**"/> -->
    <!--             <ref bean="aclInterceptor"/> -->
    <!--         </mvc:interceptor> -->
        </mvc:interceptors>
        
          <!-- 权限拦截 -->
    
    <!--     <bean id="viewResolver" -->
    <!--         class="org.springframework.web.servlet.view.UrlBasedViewResolver"> -->
    <!--         <property name="viewClass" -->
    <!--             value="org.springframework.web.servlet.view.JstlView" /> -->
    <!--         <property name="prefix" value="/html/error/" /> -->
    <!--         <property name="suffix" value=".html" /> -->
    <!--     </bean> -->
    
     <bean id="jsonFactory" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
        <property name="failOnEmptyBeans" value="false"/>
        <property name="indentOutput" value="true"/>
        <property name="dateFormat">
            <bean class="java.text.SimpleDateFormat">
                <constructor-arg value="yyyy-MM-dd HH:mm:ss"/>
            </bean>
        </property>
        <property name="featuresToDisable">
            <array>
                <value type="com.fasterxml.jackson.databind.DeserializationFeature">FAIL_ON_UNKNOWN_PROPERTIES</value>
            </array>
        </property>
    </bean>
    
    <bean class="com.yonyou.f4.common.msg.impl.TopicProducerImpl" init-method="init">
        <property name="connectionFactory" ref="rabbitmq_cf"/>
        <property name="objectMapper" ref="jsonFactory"/>
        <property name="topics">
            <set>
                <value>ms01.t1</value>
                <value>ms01.t2</value>
            </set>
        </property>
    </bean>
    <bean class="com.yonyou.f4.common.msg.impl.TopicConsumerImpl" init-method="init" destroy-method="destroy">
        <property name="connectionFactory" ref="rabbitmq_cf"/>
        <property name="objectMapper" ref="jsonFactory"/>
        <property name="maxThreads" value="10"/>
        <property name="queues">
            <map>
                <entry key="ms01.c1">
                    <map>
                        <entry key="ms01.t1" value="ms01.user.login"/>
                     </map>
                </entry>
            </map>
        </property>
        <property name="handlers">
            <map>
                <entry key="ms01.user.login">
                    <bean class="com.yonyou.dms.web.controller.basedata.MsgHandler"/>
                </entry>
                <entry key="default">
                    <bean class="com.yonyou.dms.web.controller.basedata.MsgHandler"/>
                </entry>
            </map>
        </property>
    </bean>
    
       <rabbit:connection-factory id="rabbitmq_cf" host="10.180.6.182" username="admin" password="admin123" port="5672"  virtual-host="gclub"/>
     
    
    </beans>
</beans>
原文地址:https://www.cnblogs.com/tangou/p/6904410.html