博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring+mongodb的整合
阅读量:2430 次
发布时间:2019-05-10

本文共 3050 字,大约阅读时间需要 10 分钟。

mongodb介绍

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB is an open-source, document database designed for ease of development and scaling. The Manual introduces key concepts in MongoDB, presents the query language, and provides operational and administrative considerations and procedures as well as a comprehensive reference section.

引入mongodb的包

使用mongodb提供的java api包是:

org.mongodb:mongo-java-driver

与spring整合,则需要引入另一个包:

org.springframework.data:spring-data-mongodb

maven引入配置–maven仓库:

org.mongodb
mongo-java-driver
3.1.0
org.springframework.data
spring-data-mongodb
1.8.0.RELEASE

mongodb配置

在spring的配置文件中,找到标签,加入mongo的xml命名空间:

xmlns:mongo="http://www.springframework.org/schema/data/mongo"

同时在xsi:schemaLocation加入xsd的定义:

http://www.springframework.org/schema/data/mongohttp://www.springframework.org/schema/data/mongo/spring-mongo.xsd

mongo-client

host是mongodb服务器的地址,默认127.0.0.1;port是mongodb的服务器端口号,默认是27017。如果需要认证,在1.7版本后需要这样写:

credentials的配置形式是:用户名:密码@默认数据库。

client-options

1.7版本+不支持mongo,支持mongo-client,options为client-options,如果使用mongo并且使用useCredentials,则会出现Usage of ‘UserCredentials’ with ‘MongoClient’ is no longer supported提示,编译出错。

根据某些教程甚至是官网也能看到下面这种认证配置,但是经测试在1.8的版本中不起任何作用。

credentials="mongodb://${mongo.user}:${mongo.pwd}@${mongo.host}:${mongo.port}/${mongo.defaultDbName}"

mongoDbFactory

上面配置中,在1.7以前的版本中,用户的认证可以放在这一部分,但是1.7以后就会包上面useCredentials的错误提示,所以,如果要认证,就需要将用户名和密码等信息放在mongo-client的credentials字段中。

下面给出1.7版本之前的配置:

mongoTemplate

mongoTemplate是spring提供的mongodb模板,有两种配置方式。

方式1:

方式2:

bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">        

GridFS Template

MongoDB GridFS Template 支持,操作mongodb存放的文件。

扫描MongoRepository

mongodb bean的仓库目录,会自动扫描扩展了MongoRepository接口的接口进行注入。

完整的配置

classpath:conf/properties/*.properties

注意:这里面的spring的配置并不是完整的,至于你需要加载什么,另行配置。这里保留了bean和content的配置,主要开启注解配置需要content,而bean是spring的最基本的粒度,在spring中一切class皆为bean。

properties配置

mongo.host=127.0.0.1mongo.port=27017mongo.defaultDbName=logmongo.user=joyvenmongo.pwd=123456mongo.connectionsPerHost=10mongo.threadsAllowedToBlockForConnectionMultiplier=5mongo.minConnectionsPerHost=5#连接超时时间mongo.connectTimeout=10000#等待时间mongo.maxWaitTime=120000#Socket超时时间mongo.socketTimeout=0mongo.socketKeepAlive=truemongo.description=joyven test mongodb databasemongo.maxConnectionIdleTime=1500mongo.maxConnectionLifeTime=0#mongo slavemongo.heartbeatSocketTimeout=1000mongo.heartbeatConnectTimeout=1500mongo.minHeartbeatFrequency=5mongo.heartbeatFrequency=10

原文地址:

转载地址:http://fuvmb.baihongyu.com/

你可能感兴趣的文章
苹果公司揭秘首批列入 Swift 源代码兼容性开源项目清单
查看>>
Python 玩转物联网之 Micropython GPIO IRQ 处理
查看>>
移动周刊第 188 期:Android 安全性要点与规范核心详析
查看>>
手机为基础的 IoT 布局已经失效,下一代操作系统是什么模样?
查看>>
无线传感器网络使用指南
查看>>
Unity 脚本优化的那些坑
查看>>
《近匠》专访机智云 CTO 刘琰——从 0 到 1 开启智能化硬件开发
查看>>
深度对话微软,解读 HoloLens 技术设计细节
查看>>
移动周刊第 191 期:如何看待 Kotlin 成为 Android 官方支持开发语言?
查看>>
物联网浪潮之下,前端工程师如何迎刃而上?
查看>>
从端到云——工业物联网项目全栈快速开发
查看>>
LoRa vs NB-IOT:哪个物联网标准更具优势?
查看>>
有钱 Python,没钱 PHP,编程语言也嫌贫爱富
查看>>
Docker是啥?容器变革的火花?
查看>>
假如从餐饮店的角度来看架构…
查看>>
这个充电宝太黑科技了,又小又不用自己带线,长见识了~
查看>>
HDC.2019后再发力,AppGallery Connect服务新升级
查看>>
网易云音乐热评的规律,44万条数据告诉你
查看>>
超神!GitHub 标星 5.5w,如何用 Python 实现所有算法?
查看>>
扛住100亿次请求——如何做一个“有把握”的春晚红包系统
查看>>