spring集成rabbitMQ配置
2018-01-23 19:14
375 查看
一 所需jar包
二 spring-mybatis.xml配置
三 jdbc.properties配置
四 spring-mvc.xml 配置
五 消息接收端consumer(spring-rabbitmq-consumer.xml)配置
六 消息发送端producer(spring-rabbitmq-producer.xml)配置
七 rabbitmq.properties配置
八 spring整合consumer和producer(spring-rabbitmq-context.xml)
九 producer生产类示例
十 consumer消费类示例
十一 通过配置文件启动
原创不易
<!--spring相关包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.2.5.RELEASE</version> </dependency> <!-- 添加Spring-core包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.2.5.RELEASE</version> </dependency> <!-- 添加spring-context包 --> <dependency> <groupId>org.springframework</groupId> &nb 4000 sp; <artifactId>spring-context</artifactId> <version>4.2.5.RELEASE</version> </dependency> <!-- 添加spring-tx包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.2.5.RELEASE</version> </dependency> <!-- 添加spring-jdbc包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.2.5.RELEASE</version> </dependency> <!-- 添加spring-test包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.2.5.RELEASE</version> </dependency> <!-- springmvc json --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> &nb 20000 sp; <version>2.5.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.5.1</version> </dependency> <!-- spring security --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>3.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> <version>3.0.2.RELEASE</version> <exclusions> <exclusion> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.10</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>3.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-taglibs</artifactId> <version>3.0.2.RELEASE</version> </dependency> <!-- 添加mybatis的核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <!-- 添加mybatis与Spring整合的核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- 添加mysql驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.37</version> </dependency> <!-- rabbitmq --> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>1.6.6.RELEASE</version> </dependency>
二 spring-mybatis.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:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd "> <context:property-placeholder location="classpath:jdbc.properties" /> <context:component-scan base-package="com.suninfo" /> <!-- 1. 数据源 : DriverManagerDataSource --> <!-- 添加配置文件 到spring上下文 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close" lazy-init="false"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!-- 2. mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource:引用数据源 MyBatis定义数据源,同意加载配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="mapperLocations" value="classpath*:mapper/*.xml" /> <!-- 分頁插件 --> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageHelper"> <!-- 这里的几个配置主要演示如何使用,如果不理解,一定要去掉下面的配置 --> <property name="properties"> <value> dialect=mysql <!-- 该参数默认为false --> <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 --> <!-- 和startPage中的pageNum效果一样--> offsetAsPageNum=true <!-- 该参数默认为false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 --> rowBoundsWithCount=true <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 --> <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)--> pageSizeZero=true <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 --> <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 --> <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 --> reasonable=false <!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 --> <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 --> <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 --> <!-- 不理解该含义的前提下,不要随便复制该配置 --> params=count=countSql <!-- 支持通过Mapper接口参数来传递分页参数 --> supportMethodsArguments=true <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page --> returnPageInfo=check </value> </property> </bean> </array> </property> </bean> <!-- 3. mybatis自动扫描加载Sql映射文件/接口 : MapperScannerConfigurer sqlSessionFactory basePackage:指定sql映射文件/接口所在的包(自动扫描) --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.suninfo.dao"></property> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean> <!-- 4. 事务管理 : DataSourceTransactionManager dataSource:引用上面定义的数据源 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 5. 使用声明式事务 transaction-manager:引用上面定义的事务管理器 --> <tx:annotation-driven transaction-manager="transactionManager" /> <!-- 事物的具体内容 --> <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="append*" propagation="REQUIRED" /> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="batchSave*" propagation="REQUIRED" /> <tx:method name="batchDel*" propagation="REQUIRED" /> <tx:method name="refreshUnrecovery*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="modify*" propagation="REQUIRED" /> <tx:method name="edit*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="remove*" propagation="REQUIRED" /> <tx:method name="repair" propagation="REQUIRED" /> <tx:method name="delAndRepair" propagation="REQUIRED" /> <tx:method name="get*" propagation="SUPPORTS" /> <tx:method name="find*" propagation="SUPPORTS" /> <tx:method name="load*" propagation="SUPPORTS" /> <tx:method name="search*" propagation="SUPPORTS" /> <tx:method name="datagrid*" propagation="SUPPORTS" /> <tx:method name="*" propagation="SUPPORTS" /> </tx:attributes> </tx:advice> <aop:aspectj-autoproxy /> <bean id="operationLogAspect" class="com.suninfo.aop.OperationLogAspect" /> <!-- 定义一个切面,在定义的切面上加入事物 --> <!-- <aop:config> <aop:pointcut id="transactionPointcut" expression="execution(public * com.bishe.serviceimpl.*Impl.*(..))" /> <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" /> </aop:config> --> </beans>
三 jdbc.properties配置
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.username=siem_admin jdbc.password=sIem_43@SH&% jdbc.url=jdbc:mysql://localhost:13507/siem_commondb?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
四 spring-mvc.xml 配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 注解扫描包 --> <context:component-scan base-package="com.suninfo.controller" /> <!-- 配置静态资源,直接映射到对应的文件夹,不被DispatcherServlet处理,3.04新增功能,需要重新设置spring-mvc-3.0.xsd --> <mvc:resources mapping="/static/**" location="/static/" cache-period="3153600"/> <mvc:resources mapping="/*.html" location="/" cache-period="3153600"/> <mvc:resources mapping="/birt/**" location="/birt/" cache-period="3153600"/> <mvc:resources mapping="/birt/html/*.html" location="/birt/html/" cache-period="3153600"/> <!-- 上传文件 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8"/> <!-- 最大内存大小 --> <property name="maxInMemorySize" value="102400000"/> <!-- 最大文件大小,-1为不限制大小 --> <property name="maxUploadSize" value="-1"/> </bean> <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --> <property name="prefix" value="/" /> <property name="suffix" value=".jsp" /> </bean> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!--字节数组 --> <bean id="byteArrayConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> <bean id="stringConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> <!-- 输出对象转JSON支持 --> <bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean> <!-- 定义注解驱动Controller方法处理适配器 ,注:该适配器必须声明在<mvc:annotation-driven />之前,否则不能正常处理参数类型的转换 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="byteArrayConverter"/> <ref bean="stringConverter"/> <ref bean="jsonConverter" /> </list> </property> </bean> <!-- SocketIo 配置,不涉及SocketIo则注掉 --> <bean id="initSocketIo" class="com.suninfo.util.socketio.InitSocketIo" init-method="init"/> <!-- 开启注解 --> <mvc:annotation-driven /> </beans>
五 消息接收端consumer(spring-rabbitmq-consumer.xml)配置
<?xml version="1.0" encoding="UTF-8"?> <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/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd"> <!--配置connection-factory,指定连接rabbit server参数 --> <rabbit:connection-factory id="connectionFactory" username="${rabbitmq.username}" password="${rabbitmq.password}" host="${rabbitmq.host}" port="${rabbitmq.port}" /> <!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成 --> <rabbit:queue name="routeKey_message" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue name="routeKey_email" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue name="routeKey_wechat" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue name="routeKey_socketio" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue name="routeKey_loginfo" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue name="routeKey_analysisLogInfo" durable="true" auto-delete="false" exclusive="false" /> <!-- 消息接收者 --> <bean id="messageMqConsumer" class="com.suninfo.rabbitmq.message.MessageMqConsumer"></bean> <bean id="emailMqConsumer" class="com.suninfo.rabbitmq.email.EmailMqConsumer"></bean> <bean id="wechatMqConsumer" class="com.suninfo.rabbitmq.wechat.WechatMqConsumer"></bean> <bean id="socketioMqConsumer" class="com.suninfo.rabbitmq.socketio.SocketioMqConsumer"></bean> <bean id="loginfoMqConsumer" class="com.suninfo.rabbitmq.loginfo.LoginfoMqConsumer"></bean> <bean id="analysisLogInfoMqConsumer" class="com.suninfo.rabbitmq.analysisloginfo.AnalysisLogInfoMqConsumer"></bean> <!-- queue litener 观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象--> <rabbit:listener-container connection-factory="connectionFactory" concurrency="3" prefetch="5" acknowledge="none"> <rabbit:listener queues="routeKey_message" ref="messageMqConsumer"/> <rabbit:listener queues="routeKey_email" ref="emailMqConsumer"/> <rabbit:listener queues="routeKey_wechat" ref="wechatMqConsumer"/> <rabbit:listener queues="routeKey_socketio" ref="socketioMqConsumer"/> </rabbit:listener-container> <rabbit:listener-container connection-factory="connectionFactory" concurrency="20" prefetch="5" acknowledge="none"> <rabbit:listener queues="routeKey_loginfo" ref="loginfoMqConsumer"/> <rabbit:listener queues="routeKey_analysisLogInfo" ref="analysisLogInfoMqConsumer"/> </rabbit:listener-container> </beans>
六 消息发送端producer(spring-rabbitmq-producer.xml)配置
<?xml version="1.0" encoding="UTF-8"?> <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/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd"> <!--配置connection-factory,指定连接rabbit server参数 --> <rabbit:connection-factory id="connectionFactory" username="${rabbitmq.username}" password="${rabbitmq.password}" host="${rabbitmq.host}" port="${rabbitmq.port}" /> <!-- spring amqp默认的是jackson 的一个插件,目的将生产者生产的数据转换为json存入消息队列 --> <bean id="jsonMessageConverter" class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter"></bean> <!--定义rabbit template用于数据的接收和发送 --> <rabbit:template id="amqpTemplate" connection-factory="connectionFactory" exchange="amq.direct" message-converter="jsonMessageConverter" /> <!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成 --> <rabbit:admin connection-factory="connectionFactory" /> <!--定义queue队列 --> <!-- durable:是否持久化 exclusive: 仅创建者可以使用的私有队列,断开后自动删除 auto_delete: 当所有消费客户端连接断开后,是否自动删除队列 --> <rabbit:queue name="routeKey_message" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue name="routeKey_email" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue name="routeKey_wechat" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue name="routeKey_socketio" durable="true" auto-delete="false" exclusive="false" /> <rabbit:queue name="routeKey_analysisLogInfo" durable="true" auto-delete="false" exclusive="false" /> <!-- 定义direct exchange,绑定routeKey_one --> <!-- rabbit:direct-exchange:定义exchange模式为direct,意思就是消息与一个特定的路由键完全匹配,才会转发。 rabbit:binding:设置消息queue匹配的key --> <rabbit:direct-exchange name="amq.direct" durable="true" auto-delete="false"> <rabbit:bindings> <rabbit:binding queue="routeKey_message" key="routeKey_message"></rabbit:binding> <rabbit:binding queue="routeKey_email" key="routeKey_email"></rabbit:binding> <rabbit:binding queue="routeKey_wechat" key="routeKey_wechat"></rabbit:binding> <rabbit:binding queue="routeKey_socketio" key="routeKey_socketio"></rabbit:binding> <rabbit:binding queue="routeKey_analysisLogInfo" key="routeKey_analysisLogInfo"></rabbit:binding> </rabbit:bindings> </rabbit:direct-exchange> <!-- 消息生产者 --> <bean id="messageMqProducer" class="com.suninfo.rabbitmq.message.MessageMqProducer"> <property name="amqpTemplate" ref="amqpTemplate"></property> <property name="routekey" value="routeKey_message" ></property> </bean> <bean id="emailMqProducer" class="com.suninfo.rabbitmq.email.EmailMqProducer"> <property name="amqpTemplate" ref="amqpTemplate"></property> <property name="routekey" value="routeKey_email" ></property> </bean> <bean id="wechatMqProducer" class="com.suninfo.rabbitmq.wechat.WechatMqProducer"> <property name="amqpTemplate" ref="amqpTemplate"></property> <property name="routekey" value="routeKey_wechat" ></property> </bean> <bean id="socketioMqProducer" class="com.suninfo.rabbitmq.socketio.SocketioMqProducer"> <property name="amqpTemplate" ref="amqpTemplate"></property> <property name="routekey" value="routeKey_socketio" ></property> </bean> <bean id="analysisLogInfoMqProducer" class="com.suninfo.rabbitmq.analysisloginfo.AnalysisLogInfoMqProducer"> <property name="amqpTemplate" ref="amqpTemplate"></property> <property name="routekey" value="routeKey_analysisLogInfo" ></property> </bean> </beans>
七 rabbitmq.properties配置
rabbitmq.host=localhost rabbitmq.port=5672 rabbitmq.username=guest #rabbitmq.password=At@6Tf-6Cb*6 rabbitmq.password=guest
八 spring整合consumer和producer(spring-rabbitmq-context.xml)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd" default-lazy-init="true"> <!-- 引入属性文件 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> <value>classpath:rabbitmq.properties</value> </list> </property> </bean> <import resource="spring-mybatis.xml" /> <!--<import resource="spring-memcached.xml" />--> <import resource="spring-rabbitmq-consumer.xml" /> <import resource="spring-rabbitmq-producer.xml" /> </beans>
九 producer生产类示例
package com.suninfo.rabbitmq.message; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.stereotype.Service; import java.util.List; @Service("messageMqProducer") public class MessageMqProducer { private AmqpTemplate amqpTemplate; private String routekey; public void sendMessage(final List<ShortMessage> messages){ amqpTemplate.convertAndSend(routekey,messages); } public AmqpTemplate getAmqpTemplate() { return amqpTemplate; } public void setAmqpTemplate( AmqpTemplate amqpTemplate ) {this.amqpTemplate = amqpTemplate;} public String getRoutekey() {return routekey; } public void setRoutekey( String routekey ) {this.routekey = routekey;} } public class ShortMessage { private String accounts;//多个帐号用 | 分隔 private String content;//内容 private LogInfo logInfo;//日志源 private String userName;//接受者uuid public Integer alarmType; public String eventUuid; public String strategyUuid; //get set方法 }
十 consumer消费类示例
package com.suninfo.rabbitmq.message; import org.springframework.amqp.core.MessageListener; public class MessageMqConsumer implements MessageListener { private static Logger log = LoggerFactory.getLogger( MessageMqConsumer.class ); private static SysConfigService sysConfigService;; /** * 接收内容,发送短信 * @param message */ @Override public void onMessage(Message message) { byte[] body = message.getBody(); String json = new String ( body ); log.debug("接收到消息:"+json); //获得短信对象 List<ShortMessage> shortMessages = null; try{ shortMessages = JsonUtil.jsonToList(json, ShortMessage.class); //处理逻辑 } } }
十一 通过配置文件启动
public class ElasticsearchTaskMain { private static final Logger log = LoggerFactory.getLogger( ElasticsearchTaskMain.class ); private static LogSourceService logSourceService; public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( "classpath:spring-context-log.xml" ); //初始化,封装消费点需要的bean logSourceService = (LogSourceService)context.getBean( "logSourceService" ); } }
原创不易
相关文章推荐
- Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
- RabbitMQ与spring集成,配置完整的生产者和消费者
- Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
- Spring对hibernate配置文件hibernate.cfg.xml的集成,来取代hibernate.cfg.xml的配置
- xmemcached的集成spring配置
- 开始学Spring第2章-Eclipse,MAVEN,SVN,TOMCAT集成配置
- Spring集成Kafka,配置生产者消费者
- activemq与spring集成配置
- mybatis-spring集成:配置多数据库源中遇到的问题
- Struts2 + Spring 2 集成配置
- Quartz与spring集成及集群环境配置
- 为Spring集成的Hibernate配置二级缓存
- spring集成mybatis,dbcp连接池的配置文件
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)
- Quartz-Spring集成Quartz通过注解配置的方式
- springboot(集成篇):RabbitMQ集成详解
- 消息队列RabbitMQ与Spring集成
- springmvc+mybatis集成配置
- spring-boot 集成 rabbitmq
- Quartz+Spring集成配置