基于spring3和mongodb3的spring-data-mongodb框架集成
来源:互联网 发布:kk视频录制软件 编辑:程序博客网 时间:2024/06/05 06:33
JDK 1.7
Spring 3.2.0.RELEASE
spring-data-mongodb 1.4.2.RELEASE
mongo-java-driver 2.14.2(支持mongodb 3.0)
阿里云mongodb库(3.2)(官方要求:请使用MongoDB 3.0以上版本的driver)
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.2.0.RELEASE</version> </dependency> 省略。。。其它spring配置 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <!--<version>1.7.0.RELEASE</version> 需要spring4--> <!--<version>1.6.4.RELEASE</version> 需要spring4--> <version>1.4.2.RELEASE</version> <exclusions><!-- 去就近的mongo-java-driver依赖,因为要支持mongodb 3.x--> <exclusion> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> </exclusion> </exclusions> </dependency> <!-- MongoDB --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.14.2</version> </dependency>
<?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:mongo="http://www.springframework.org/schema/data/mongo" xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- Default bean name is 'mongo' --> <!--<mongo:mongo host="${mongo.host}" port="${mongo.port}"/> <mongo:db-factory dbname="${mongo.dbname}" mongo-ref="mongo" username="${mongo.username}" password="${mongo.password}" />-->
<mongo:db-factory uri="${mongo.uri}"/> <!--这种方式可以配置多主机 --> <!-- by default look for a Mongo object named 'mongo' - default name used for the converter is 'mappingConverter' --> <bean id="readConverter" class="com.***.mongo.converters.UserRequestReader"/> <mongo:mapping-converter base-package="com.***"> <mongo:custom-converters> <mongo:converter ref="readConverter"/> <mongo:converter> <bean class="com.***.mongo.converters.UserRequestWriter"/> </mongo:converter> </mongo:custom-converters> </mongo:mapping-converter> <!-- set the mapping converter to be used by the MongoTemplate --> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/> <constructor-arg name="mongoConverter" ref="mappingConverter"/> </bean><!-- <bean class="org.springframework.data.mongodb.core.mapping.event.LoggingEventListener"/> --></beans>
追加:
1、上线时可能出现这样的异常
Caused by: com.mongodb.MongoWaitQueueFullException: Too many threads are already waiting for a connection. Max number of threads (maxWaitQueueSize) of50 has been exceeded.
...
原因是spring-data-mongo 版本比较旧,默认传给driver的最大连接池数,只有10,乘上因子(默认5),最大只能支持10*5=50个线程并发请求。方法也很简单,自定义maxPoolSize参数即可,比如定义为200,这样单个java进程可以支持200*5=1000个线程并发请求mongodb
mongodb://{userName}:{password}@{host1:port1},{host2:port2}/{dbname}?replicaSet={replicaSetName}&maxPoolSize=200
2、假如按照阿里云文档(iptable或者rinetd)配置外网访问
mongo uri改成mongodb://{userName}:{password}@{host1:port1}/{dbname}?maxPoolSize=200,去掉replicaSet参数,可以避免客户端将服务端ip转成内网,导致访问不了。
配置外网可访问,要注意主备切换会导致代理配置需要相应改动,建议仅仅用于测试环境。
- 基于spring3和mongodb3的spring-data-mongodb框架集成
- MongoDB学习日记 - Spring框架集成 : spring-data-mongodb
- spring-data 集成mongodb
- Spring-data集成mongodb
- MongoDB集成Spring Data
- MongoDB集成Spring Data
- centos7安装MongoDB3.4 以及spring data mongodb的配置使用
- 关于spring mvc,spring data,spring,MongoDB整合框架的一些思考和常用注解
- 基于Nodejs和Mongodb的web框架并集成Apache Solr和RabbitMQ—SOWF
- spring3.0+struts2+hibernate3整个环境的搭建和基于junit4的spring测试框架,最新技术的ssh框架
- 基于sping-data-mongodb的基础框架搭建
- dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb3.4-redis3.2整合(七)RabbitMQ工作原理和Spring的集成
- cxf框架和spring mvc的集成
- ssm(spring+springMVC+Mybatis)框架集成Mongodb
- Spring Data 与MongoDB 集成一:入门篇(开发环境搭建和简单CRUD)
- Spring Data 与MongoDB 集成二:操作篇(添加和删除)
- Spring Data 与MongoDB 集成一:入门篇(开发环境搭建和简单CRUD)
- 基于Spring Data JPA框架的文章归档实现
- Cocos2d-js场景切换资源释放策略
- TP5.0 请求和响应
- 变量赋值问题
- vuejs-阻止事件冒泡与默认行为
- <Unity>Shader的内置值
- 基于spring3和mongodb3的spring-data-mongodb框架集成
- 配置NTP服务器
- This
- Windows驱动程序运行时函数的调用
- 点击空白区域关闭软键盘
- awstats + tomcat + windows
- Docker学习总结(24)——在Docker中监视Java应用程序的5种方法
- sql regexp的使用
- mysql 数据表中查找重复记录