spring+mongodb的整合

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

gradle引入配置:

    //mongodb    compile 'org.springframework.data:spring-data-mongodb:1.8.0.RELEASE'    compile 'org.mongodb:mongo-java-driver:3.1.0'

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

配置暂时就说这么多,等有时间了写个demo,实现一个restful接口,效果如下:

图1 restful api

图2 yii2实现的数据展示

关键字:spring, mongodb, java


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部