资讯专栏INFORMATION COLUMN

spring+mongodb的整合

warmcheng / 970人阅读

摘要:版本不支持支持为,如果使用并且使用,则会出现提示,编译出错。扫描的仓库目录,会自动扫描扩展了接口的接口进行注入。

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/mongo
http://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-clientcredentials字段中。

下面给出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.1
mongo.port=27017
mongo.defaultDbName=log
mongo.user=joyven
mongo.pwd=123456
mongo.connectionsPerHost=10
mongo.threadsAllowedToBlockForConnectionMultiplier=5
mongo.minConnectionsPerHost=5
#连接超时时间
mongo.connectTimeout=10000
#等待时间
mongo.maxWaitTime=120000
#Socket超时时间
mongo.socketTimeout=0
mongo.socketKeepAlive=true

mongo.description=joyven test mongodb database
mongo.maxConnectionIdleTime=1500
mongo.maxConnectionLifeTime=0
#mongo slave
mongo.heartbeatSocketTimeout=1000
mongo.heartbeatConnectTimeout=1500
mongo.minHeartbeatFrequency=5
mongo.heartbeatFrequency=10

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

图1 restful api

图2 yii2实现的数据展示

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64870.html

相关文章

  • spring+mongodb整合

    摘要:版本不支持支持为,如果使用并且使用,则会出现提示,编译出错。扫描的仓库目录,会自动扫描扩展了接口的接口进行注入。 mongodb介绍 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 MongoD...

    gaara 评论0 收藏0
  • 两年了,我写了这些干货!

    摘要:开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章系列处理登录请求前后端分离一使用完美处理权限问题前后端分离二使用完美处理权限问题前后端分离三中密码加盐与中异常统一处理 开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章! Spring Boo...

    huayeluoliuhen 评论0 收藏0
  • 如何整合Spring + SpringBoot + MyBatis + MongoDB

    摘要:我有个定时器,这个注解是让它发现定时器让它去发现你的层如果你在创建项目的时候,忘记勾选某一些依赖的话不要紧,可以在文件里添加依赖。 前言 我之前是学SpringMVC的,后面听同学说SpringBoot挺好用,极力推荐我学这个鬼。一开始,在网上找SpringBoot的学习资料,他们博文写得不是说不好,而是不太详细。我就在想我要自己写一篇尽可能详细的文章出来。 技术栈 Spring S...

    xiaokai 评论0 收藏0
  • 如何整合Spring + SpringBoot + MyBatis + MongoDB

    摘要:我有个定时器,这个注解是让它发现定时器让它去发现你的层如果你在创建项目的时候,忘记勾选某一些依赖的话不要紧,可以在文件里添加依赖。 前言 我之前是学SpringMVC的,后面听同学说SpringBoot挺好用,极力推荐我学这个鬼。一开始,在网上找SpringBoot的学习资料,他们博文写得不是说不好,而是不太详细。我就在想我要自己写一篇尽可能详细的文章出来。 技术栈 Spring S...

    garfileo 评论0 收藏0

发表评论

0条评论

warmcheng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<