集成java mongodb jar,需要引入哪些版本的jar包

java连接mongodb的jar包(mongo-2.5.3.jar) - Java - 课程资源 - 码农网(全站资源免积分下载)
java连接mongodb的jar包(mongo-2.5.3.jar)
java连接mongodb的jar包(mongo-2.5.3.jar)(其他文档,240KB,免5积分)
下载信息载入中...&&&&&&
请输入验证码:
下载说明:
1、推荐使用WinRAR v3.10 以上版本解压本站资源。
2、本站上所有资源均为网友收集上传。本站所有资源仅供学习和研究使用,不得用于任何商业用途。如有需要请购买正版。如有侵犯你版权的,请给我们发邮件,本站将立即改正。
3、下载本站资源时,如果服务器暂不能下载请过一段时间重试!
4、本站和网警密切配合,对发布违法资源零容忍。
java连接mongodb的jar包(mongo-2.5.3.jar)
java连接mongodb的jar包(mongo-2.5.3.jar)
mongo-2.5.3.jar下载
mongo.jar,java
mongo-2.8.0.jar mongoDB 操作JAVA
mongo-2.8.0,,,JAVA,DB
java访问mongoDB的jar包 mongo-2.10.1
mongoDB-2.5.3 java驱动源码
mongoDB,,,java,
jython-standalone-2.5.3.jar
jython2.5.3,单机版
mongo-2.7.3.jar
java连接mongodb的jar包
mongo-2.8.0.jar
mongodb,driver
mongo-2.10.1.jar
mongo,,2.10.1.jar
mongo-2.9.3.jar&>&&>&&>&&>&spring springmvc mongodb所需jar包
spring springmvc mongodb所需jar包
上传大小:22.27MB
包含了spring+springmvc+mongodb + mybaits+ oracle所必须的基本全部jar包,经本人亲自测试,从源码中复制出来的,欢迎下载
综合评分:0(0位用户评分)
所需积分:1
下载次数:40
审核通过送C币
创建者:sinat_
创建者:sinat_
创建者:ls
课程推荐相关知识库
上传者其他资源上传者专辑
开发技术热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
spring springmvc mongodb所需jar包
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
clockforest
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:spring4与mongodb的集成 - shihuc - 博客园
践行孤独之美
posts - 113, comments - 21, trackbacks - 0, articles - 0
新项目的辅助系统,需要用到mongo系统,今天再次将其使用环境进行了操作搭建。还是遇到一些问题,毕竟之前使用的场景和现在的不同。版本也不一样了。
本次使用的环境:
mongo:3.4.4版本
OS: redhat7
java操作mongo库
1. 首先,mongo数据库的安装
直接到mongodb官网下载mongodb-linux-x86_64-rhel70-3.4.4.tgz。解压之后,运行mongod即可启动服务。当然,我这里是为了项目开发用,第一步就启用单实例。
看看我们的mongodb的配置:
#数据库数据存放路径dbpath = /home/tkrobot/mongodb/data#日志存放路径
logpath = /home/tkrobot/mongodb/logs/mongodb.log
logappend = true
port = <span style="color: #017
fork = true#启动认证功能,要想连接到数据库,必须经过用户名密码认证才可以
auth = true#禁止http访问数据库
nohttpinterface = true#连接数据库时必须是这个ip
bind_ip = <span style="color: #.90.<span style="color: #.10
journal = true#最大连接数
maxConns = <span style="color: #0
这里,需要在mongod启动前,创建好/home/tkrobot/mongodb/data以及/home/tkrobot/mongodb/logs两个目录。
启动mongod的脚本:
./mongod --config /etc/mongodb.conf
这样,mongod就算启动好了。下面有其启动日志:
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten] MongoDB starting : pid=<span style="color: #891 port=<span style="color: #017 dbpath=/home/tkrobot/mongodb/data <span style="color: #-bit host=localhost.localdomain
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten] db version v3.<span style="color: #.4
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten] git version: a9debd1b6c5d3babd
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten] OpenSSL version: OpenSSL <span style="color: #.0.1e-fips <span style="color: # Feb <span style="color: #13
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten] allocator: tcmalloc
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten] modules: none
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten] build environment:
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten]
distmod: rhel70
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten]
distarch: x86_64
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten]
target_arch: x86_64
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I CONTROL
[initandlisten] options: { config: "/etc/mongodb.conf", net: { bindIp: "<span style="color: #.90.7.10", http: { enabled: false }, maxIncomingConnections: <span style="color: #0, port: <span style="color: #017 }, security: { authorization: "enabled" }, st
orage: { dbPath: "/home/tkrobot/mongodb/data", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/home/tkrobot/mongodb/logs/mongodb.log" } }
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.553+<span style="color: #00 I STORAGE
[initandlisten] wiredtiger_open config: create,cache_size=15438M,session_max=<span style="color: #000,eviction=(threads_min=<span style="color: #,threads_max=<span style="color: #),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=jo
urnal,compressor=snappy),file_manager=(close_idle_time=<span style="color: #0000),checkpoint=(wait=<span style="color: #,log_size=2GB),statistics_log=(wait=<span style="color: #),
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.567+<span style="color: #00 I CONTROL
[initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.567+<span style="color: #00 I CONTROL
[initandlisten]
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.567+<span style="color: #00 I CONTROL
[initandlisten]
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.568+<span style="color: #00 I CONTROL
[initandlisten] ** WARNING: You are running on a NUMA machine.
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.568+<span style="color: #00 I CONTROL
[initandlisten] **
We suggest launching mongod like this to avoid performance problems:
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.568+<span style="color: #00 I CONTROL
[initandlisten] **
numactl --interleave=all mongod [other options]
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.568+<span style="color: #00 I CONTROL
[initandlisten]
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.568+<span style="color: #00 I CONTROL
[initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.568+<span style="color: #00 I CONTROL
[initandlisten] **
We suggest setting it to 'never'
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.568+<span style="color: #00 I CONTROL
[initandlisten]
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.568+<span style="color: #00 I CONTROL
[initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.568+<span style="color: #00 I CONTROL
[initandlisten] **
We suggest setting it to 'never'
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.568+<span style="color: #00 I CONTROL
[initandlisten]
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.571+<span style="color: #00 I FTDC
[initandlisten] Initializing full-time diagnostic data capture with directory '/home/tkrobot/mongodb/data/diagnostic.data'
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.575+<span style="color: #00 I INDEX
[initandlisten] build index on: admin.system.version properties: { v: <span style="color: #, key: { version: <span style="color: # }, name: "incompatible_with_version_32", ns: "admin.system.version" }
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.575+<span style="color: #00 I INDEX
[initandlisten]
building index using build may temporarily use up to <span style="color: #0 megabytes of RAM
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.576+<span style="color: #00 I INDEX
[initandlisten] build index done.
scanned <span style="color: # total records. <span style="color: # secs
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.576+<span style="color: #00 I COMMAND
[initandlisten] setting featureCompatibilityVersion to <span style="color: #.4
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.576+<span style="color: #00 I NETWORK
[thread1] waiting for connections on port <span style="color: #017
2. 接下来,我们操作一下,验证数据库部署的情况是否ok。
为了方便使用mongo客户端指令,将解压后的mongo配置到环境变量里面,方便操作。
export MONGODB_PATH=/home/tkrobot/mongodb-linux-x86_64-rhel70-3.4.4
export PATH=$JAVA_HOME/bin:$MONGODB_PATH/bin:$PATH
用mongo登录操作数据库:
[root@localhost bin]# mongo
MongoDB shell version v3.<span style="color: #.4
connecting to: mongodb://<span style="color: #.90.7.10:27017
MongoDB server version: <span style="color: #.4.<span style="color: #
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http:///group/mongodb-user
<span style="color: #17-<span style="color: #-02T11:<span style="color: #:<span style="color: #.878+<span style="color: #00 E QUERY
[thread1] Error: listDatabases failed:{
"ok" : <span style="color: #,
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : <span style="color: #,
"codeName" : "Unauthorized"
_getErrorWithCode@src/mongo/shell/utils.js:<span style="color: #:<span style="color: #
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:<span style="color: #:<span style="color: #
shellHelper.show@src/mongo/shell/utils.js:<span style="color: #9:<span style="color: #
shellHelper@src/mongo/shell/utils.js:<span style="color: #9:<span style="color: #
@(shellhelp2):<span style="color: #:<span style="color: #
没有权限,因为我们在mongod.conf里面指定要auth了。最简单的办法,就是将mongod.conf里面的auth注释掉,重新启动mongod,进行权限配置。
在没有auth属性的情况下,启动mongod,然后再次mongo连接上数据库,use指定的数据库,创建一个专属的用户。
use robotkdb
指定数据库robotkdb后,创建一个用户robotassister。
db.createUser({
... user:"robotassister",
... pwd:"xxyyyxxxxx",
... roles:[{role:"dbOwner",db:"robotkdb“}]})
这样,就相当于给指定的数据库robotkdb创建了一个角色为dbOwener的用户robotassister。
最后,将mongodb.conf中的auth重新放开,启用auth,再启动mongod,并进行指定数据库和用户名的方式连接到mongodb:
mongo --host <span style="color: #.90.<span style="color: #.10 --port <span style="color: #017 -u robotassister -p xxyyyxxxx robotdb
如此,一切都ok,单实例的mongod配置带auth的启动,客户端通过credentials的方式连接到指定的库,准备工作就绪。
3. spring集成mongodb。
安装spring官方的文档介绍,这个过程是比较简单的。集成过程中需要用到的支持mongodb的jar包也不多。主要有:
mongo-java-driver-<span style="color: #.4.<span style="color: #.jar
spring-data-commons-<span style="color: #.10.<span style="color: #.RELEASE.jar
spring-data-commons-core-<span style="color: #.4.<span style="color: #.RELEASE.jar
spring-data-mongodb-<span style="color: #.7.<span style="color: #.RELEASE.jar
上述的jar是我的集成过程中用到的。
我在自己既有的spring mvc的web项目里面,添加了mongodb的支持。
首先看看mongodb的xml配置文件spring-mongo.xml:
&?xml version="<span style="color: #.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"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd       
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.2.xsd"
default-lazy-init="default"&
&!--credentials的配置形式是:用户名:密码@默认数据库--&
&mongo:mongo-client id="mongoClient" host="${mongo.host}" port="${mongo.port}"
credentials="${mongo.username}:${mongo.password}@${mongo.dbname}"&
&mongo:client-options
write-concern="SAFE"
connections-per-host="${mongo.connectionsPerHost}"
threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
connect-timeout="${mongo.connectTimeout}"
max-wait-time="${mongo.maxWaitTime}"
socket-timeout="${mongo.socketTimeout}"/&
&/mongo:mongo-client&
&mongo:db-factory id="mongoDbFactory" dbname="${mongo.dbname}" mongo-ref="mongoClient" /&
&bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"&
&constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /&
其中的参数配置文件mongo.properties:
mongo.dbname=robotkdb
mongo.host=<span style="color: #.90.<span style="color: #.10
mongo.port=<span style="color: #017
mongo.username=robotassister
mongo.password=xxyyyxxxxx
#一个线程变为可用的最大阻塞数
mongo.connectionsPerHost=<span style="color: #
#线程队列数,它以上面connectionsPerHost值相乘的结果就是线程队列最大值
mongo.threadsAllowedToBlockForConnectionMultiplier=<span style="color: #
#连接超时时间(毫秒)
mongo.connectTimeout=<span style="color: #00
#最大等待时间
mongo.maxWaitTime=<span style="color: #00
mongo.autoConnectRetry=true
#scoket保持活动
mongo.socketKeepAlive= true
#scoket超时时间
mongo.socketTimeout=<span style="color: #00
mongo.slaveOk=true
接下来,看看spring的配置文件applicationContext.xml:
&?xml version="<span style="color: #.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:aop="http://www.springframework.org/schema/aop"
xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"&
&bean id="configRealm" class="org.springframework.beans.factory.config.PropertiesFactoryBean"&
&property name="locations"&
&value&classpath:conf/internal.properties&/value&
&value&classpath:conf/jdbc.properties&/value&
&value&classpath:conf/redis.properties&/value&
&value&classpath:conf/session.properties&/value&
&value&classpath:conf/mongo.properties&/value&
&/property&
&bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"&
&property name="properties" ref="configRealm"/&
&bean id="springCacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"&
&property name="cacheManager" ref="ehcacheManager"/&
&bean id="ehcacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"&
&property name="configLocation" value="classpath:conf/ehcache.xml"/&
&cache:annotation-driven cache-manager="springCacheManager"/&
&import resource="spring-servlet.xml"/&
&import resource="spring-cache.xml"/&
&import resource="spring-dao.xml"/&
&import resource="spring-redis.xml"/&
&import resource="spring-mongo.xml"/&
ok,到此,所有的配置工作都完毕了,我们就启动web项目,看看是否能正常启动吧!遗憾,出了下面的错误!!!!!
五月 <span style="color: #, <span style="color: #17 <span style="color: #:<span style="color: #:<span style="color: # 下午 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [spring-mongo.xml]
Offending resource: class path resource [conf/applicationContext.xml]; nested exception is org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line <span style="color: #5 in XML document from class path resource [conf/spring-mongo.xml] is nested exception is org.xml.sax.SAXParseE systemId: http://www.springframework.org/schema/data/mongo/spring-mongo-1.7. lineNumber: 275; columnNumber: 63; src-resolve: 无法将名称 'repository:auditing-attributes' 解析为 'attribute group' 组件。
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:<span style="color: #)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:<span style="color: #)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:<span style="color: #)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:<span style="color: #4)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:<span style="color: #9)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:<span style="color: #4)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:<span style="color: #7)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:<span style="color: #1)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:<span style="color: #5)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:<span style="color: #1)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:<span style="color: #5)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:<span style="color: #3)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:<span style="color: #4)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:<span style="color: #9)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:<span style="color: #0)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:<span style="color: #5)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:<span style="color: #)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:<span style="color: #0)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:<span style="color: #2)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:<span style="color: #1)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:<span style="color: #0)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:<span style="color: #6)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:<span style="color: #2)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:<span style="color: #11)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:<span style="color: #51)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:<span style="color: #7)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:<span style="color: #08)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:<span style="color: #98)
at java.util.concurrent.FutureTask.run(FutureTask.java:<span style="color: #2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:<span style="color: #45)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:<span style="color: #5)
at java.lang.Thread.run(Thread.java:<span style="color: #4)
Caused by: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line <span style="color: #5 in XML document from class path resource [conf/spring-mongo.xml] is nested exception is org.xml.sax.SAXParseE systemId: http://www.springframework.org/schema/data/mongo/spring-mongo-1.7. lineNumber: 275; columnNumber: 63; src-resolve: 无法将名称 'repository:auditing-attributes' 解析为 'attribute group' 组件。
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:<span style="color: #7)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:<span style="color: #5)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:<span style="color: #3)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:<span style="color: #8)
... <span style="color: # more
Caused by: org.xml.sax.SAXParseE systemId: http://www.springframework.org/schema/data/mongo/spring-mongo-1.7. lineNumber: 275; columnNumber: 63; src-resolve: 无法将名称 'repository:auditing-attributes' 解析为 'attribute group' 组件。
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:<span style="color: #8)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:<span style="color: #4)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:<span style="color: #7)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:<span style="color: #62)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:<span style="color: #45)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:<span style="color: #41)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAttributeGroupTraverser.traverseLocal(XSDAttributeGroupTraverser.java:<span style="color: #)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAbstractTraverser.traverseAttrsAndAttrGrps(XSDAbstractTraverser.java:<span style="color: #3)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(XSDComplexTypeTraverser.java:<span style="color: #22)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(XSDComplexTypeTraverser.java:<span style="color: #5)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseLocal(XSDComplexTypeTraverser.java:<span style="color: #4)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseNamedElement(XSDElementTraverser.java:<span style="color: #2)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseGlobal(XSDElementTraverser.java:<span style="color: #2)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseSchemas(XSDHandler.java:<span style="color: #33)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:<span style="color: #0)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:<span style="color: #6)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:<span style="color: #53)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:<span style="color: #72)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:<span style="color: #6)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:<span style="color: #8)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:<span style="color: #78)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:<span style="color: #6)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:<span style="color: #7)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:<span style="color: #0)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:<span style="color: #8)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:<span style="color: #7)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:<span style="color: #1)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:<span style="color: #3)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:<span style="color: #7)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:<span style="color: #)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:<span style="color: #9)
... <span style="color: # more
这个,还真是折腾了我一段时间,最终找到原因:
上述这个错误,需要在spring-mongo.xml文件中添加下面的两行内容
http://www.springframework.org/schema/data/repository
http://www.springframework.org/schema/data/repository/spring-repository-1.7.xsd
采用基于mongo:mongo-client标签进行安全配置,mongo要求spring-mongo.xsd必须是1.6及以上的版本。我们这里选用的是1.7.
ok,再次运行看看吧。。。。。。结果如何呢。。。。。。。。。
五月 <span style="color: #, <span style="color: #17 <span style="color: #:<span style="color: #:<span style="color: # 下午 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoTemplate' defined in class path resource [conf/spring-mongo.xml]: Instanti nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.data.mongodb.core.MongoTemplate]: Constru nested exception is java.lang.NoClassDefFoundError: org/springframework/objenesis/ObjenesisStd
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:<span style="color: #5)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:<span style="color: #77)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:<span style="color: #1)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:<span style="color: #7)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:<span style="color: #8)
at org.springframework.beans.factory.support.AbstractBeanFactory$<span style="color: #.getObject(AbstractBeanFactory.java:<span style="color: #3)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:<span style="color: #3)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:<span style="color: #0)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:<span style="color: #1)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:<span style="color: #6)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:<span style="color: #8)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:<span style="color: #9)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:<span style="color: #0)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:<span style="color: #6)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:<span style="color: #2)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:<span style="color: #11)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:<span style="color: #51)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:<span style="color: #7)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:<span style="color: #08)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:<span style="color: #98)
at java.util.concurrent.FutureTask.run(FutureTask.java:<span style="color: #2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:<span style="color: #45)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:<span style="color: #5)
at java.lang.Thread.run(Thread.java:<span style="color: #4)
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.data.mongodb.core.MongoTemplate]: Constru nested exception is java.lang.NoClassDefFoundError: org/springframework/objenesis/ObjenesisStd
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:<span style="color: #3)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:<span style="color: #1)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:<span style="color: #7)
... <span style="color: # more
Caused by: java.lang.NoClassDefFoundError: org/springframework/objenesis/ObjenesisStd
at org.springframework.data.mongodb.core.convert.DefaultDbRefResolver.&init&(DefaultDbRefResolver.java:<span style="color: #)
at org.springframework.data.mongodb.core.MongoTemplate.getDefaultMongoConverter(MongoTemplate.java:<span style="color: #29)
at org.springframework.data.mongodb.core.MongoTemplate.&init&(MongoTemplate.java:<span style="color: #6)
at org.springframework.data.mongodb.core.MongoTemplate.&init&(MongoTemplate.java:<span style="color: #1)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:<span style="color: #)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:<span style="color: #)
at java.lang.reflect.Constructor.newInstance(Constructor.java:<span style="color: #6)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:<span style="color: #8)
... <span style="color: # more
Caused by: java.lang.ClassNotFoundException: org.springframework.objenesis.ObjenesisStd
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:<span style="color: #05)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:<span style="color: #39)
... <span style="color: # more
又出现了错误。。。看来不是很顺利啊,再研究看root cause是什么呢???依据
爆出上述错误,经过查找原因,得知,sping-data-mongo要求spring-core必须是4.x的版本,也就是说spring4才行。
源头是通过查找日志中红色部分的错误信息,得知相关的jar依赖文件,在spring-core 4.x的版本中默认含有,于是,将项目中原来3.2的配置信息,全部更新为4.2的,并相应的将工程的lib中spring的版本更新到4.2.再次启动应用。这次,一切都ok了。
最终能正常运行的applicationContext.xml的内容如下:
&?xml version="<span style="color: #.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:aop="http://www.springframework.org/schema/aop"
xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"&
&bean id="configRealm" class="org.springframework.beans.factory.config.PropertiesFactoryBean"&
&property name="locations"&
&value&classpath:conf/internal.properties&/value&
&value&classpath:conf/jdbc.properties&/value&
&value&classpath:conf/redis.properties&/value&
&value&classpath:conf/session.properties&/value&
&value&classpath:conf/mongo.properties&/value&
&/property&
&bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"&
&property name="properties" ref="configRealm"/&
&bean id="springCacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"&
&property name="cacheManager" ref="ehcacheManager"/&
&bean id="ehcacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"&
&property name="configLocation" value="classpath:conf/ehcache.xml"/&
&cache:annotation-driven cache-manager="springCacheManager"/&
&import resource="spring-servlet.xml"/&
&import resource="spring-cache.xml"/&
&import resource="spring-dao.xml"/&
&import resource="spring-redis.xml"/&
&import resource="spring-mongo.xml"/&
最终能正常运行的spring-mongo.xml的内容如下:
&?xml version="<span style="color: #.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"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.7.xsd
http://www.springframework.org/schema/data/repository
http://www.springframework.org/schema/data/repository/spring-repository-1.7.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-4.2.xsd"
default-lazy-init="default"&
&!--credentials的配置形式是:用户名:密码@默认数据库--&
&mongo:mongo-client id="mongoClient" host="${mongo.host}" port="${mongo.port}"
credentials="${mongo.username}:${mongo.password}@${mongo.dbname}"&
&mongo:client-options
write-concern="SAFE"
connections-per-host="${mongo.connectionsPerHost}"
threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
connect-timeout="${mongo.connectTimeout}"
max-wait-time="${mongo.maxWaitTime}"
socket-timeout="${mongo.socketTimeout}"/&
&/mongo:mongo-client&
&mongo:db-factory id="mongoDbFactory" dbname="${mongo.dbname}" mongo-ref="mongoClient" /&
&bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"&
&constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /&
4. 启用一个测试,验证一下spring和mongodb的集成是否成功吧
先构建一个javabean:
* @author "shihuc"
package com.roomdis.center.mongo.
import java.io.S
import org.ietf.jgss.O
import org.springframework.data.mongodb.core.mapping.D
import org.springframework.data.mongodb.core.mapping.F
* @author chengsh05
@Document(collection="buzz_element")
public class BuzzElement implements Serializable {
private static final long serialVersionUID = <span style="color: #L;
private Oid _
@Field(value="item_id")
private String itemId;
@Field(value="item_name")
private String itemN
@Field(value="price")
@Field(value="desc")
public Oid get_id() {
public void set_id(Oid _id) {
this._id = _
public String getItemId() {
return itemId;
public void setItemId(String itemId) {
this.itemId = itemId;
public String getItemName() {
return itemN
public void setItemName(String itemName) {
this.itemName = itemN
public String getPrice() {
public void setPrice(String price) {
this.price =
public String getDesc() {
public void setDesc(String desc) {
this.desc =
public String toString() {
return "ItemInfo [_id=" + _id + ", itemId=" + itemId + ", itemName="
+ itemName + ", price=" + price + ", desc=" + desc + "]";
再创建工具类BeanUtil:
* @author "shihuc"
package com.roomdis.center.mongo.
import java.lang.reflect.F
import java.lang.reflect.InvocationTargetE
import java.util.D
import mons.beanutils.BeanU
import com.mongodb.BasicDBO
import com.mongodb.DBO
* @author chengsh05
public class BeanUtil {
* 把实体bean对象转换成DBObject
* @param bean
* @throws IllegalArgumentException
* @throws IllegalAccessException
public static &T& DBObject bean2DBObject(T bean) throws IllegalArgumentException,
IllegalAccessException {
if (bean == null) {
return null;
DBObject dbObject = new BasicDBObject();
// 获取对象对应类中的所有属性域
Field[] fields = bean.getClass().getDeclaredFields();
// 获取所有注解
for (Field field : fields) {
org.springframework.data.mongodb.core.mapping.Field anno = field.getAnnotation(org.springframework.data.mongodb.core.mapping.Field.class);
// 获取属性名
String varName = field.getName();
if("serialVersionUID".equals(varName) || "_id".equals(varName)){
// 获取注解的值
varName = anno.value();
// 修改访问控制权限
boolean accessFlag = field.isAccessible();
if (!accessFlag) {
field.setAccessible(true);
Object param = field.get(bean);
if (param == null) {
} else if (param instanceof Integer) {//判断变量的类型
int value = ((Integer) param).intValue();
dbObject.put(varName, value);
} else if (param instanceof String) {
String value = (String)
dbObject.put(varName, value);
} else if (param instanceof Double) {
double value = ((Double) param).doubleValue();
dbObject.put(varName, value);
} else if (param instanceof Float) {
float value = ((Float) param).floatValue();
dbObject.put(varName, value);
} else if (param instanceof Long) {
long value = ((Long) param).longValue();
dbObject.put(varName, value);
} else if (param instanceof Boolean) {
boolean value = ((Boolean) param).booleanValue();
dbObject.put(varName, value);
} else if (param instanceof Date) {
Date value = (Date)
dbObject.put(varName, value);
// 恢复访问控制权限
field.setAccessible(accessFlag);
return dbO
* 把DBObject转换成bean对象
* @param dbObject
* @param bean
* @throws IllegalAccessException
* @throws InvocationTargetException
* @throws NoSuchMethodException
public static &T& T dbObject2Bean(DBObject dbObject, T bean) throws IllegalAccessException,
InvocationTargetException, NoSuchMethodException {
if (bean == null) {
return null;
Field[] fields = bean.getClass().getDeclaredFields();
for (Field field : fields) {
String varName = field.getName();
org.springframework.data.mongodb.core.mapping.Field anno = field.getAnnotation(org.springframework.data.mongodb.core.mapping.Field.class);
if("serialVersionUID".equals(varName) || "_id".equals(varName)){
String fieldName = anno.value();
Object object = dbObject.get(fieldName);
if (object != null) {
BeanUtils.setProperty(bean, varName, object);
再次,创建服务,进行操作数据库,相当于dao层:
* @author "shihuc"
package com.roomdis.center.mongo.
import java.util.L
import org.json.JSONO
import com.roomdis.center.mongo.model.BuzzE
* @author chengsh05
public interface IBuzzElementService {
public List&BuzzElement& getItemInfo(JSONObject json) throws E
public int save(BuzzElement itemInfo) throws E
public void update(BuzzElement intemInfo) throws E
* @author "shihuc"
package com.roomdis.center.mongo.service.
import java.util.ArrayL
import java.util.I
import java.util.L
import org.json.JSONO
import org.springframework.beans.factory.annotation.A
import org.springframework.data.mongodb.core.MongoT
import org.springframework.stereotype.S
import com.mongodb.BasicDBO
import com.mongodb.DBC
import com.mongodb.DBC
import com.mongodb.DBO
import com.mongodb.WriteR
import com.roomdis.center.mongo.model.BuzzE
import com.roomdis.center.mongo.service.IBuzzElementS
import com.roomdis.center.mongo.util.BeanU
* @author chengsh05
@Service("buzzElementService")
public class BuzzElementServiceImpl implements IBuzzElementService {
@Autowired
private MongoTemplate mongoT
private final static String COLLECTION_NAME = "buzz_element";
/* (non-Javadoc)
* @see com.roomdis.center.mongo.service.IBuzzElementService#getItemInfo(org.json.JSONObject)
public List&BuzzElement& getItemInfo(JSONObject json) throws Exception {
List&BuzzElement& list = new ArrayList&BuzzElement&();
// 判断查询的json中传递过来的参数
DBObject query = new BasicDBObject();
if(json.has("item_id")){
query.put("item_id", json.getString("item_id"));
}else if(json.has("item_name")){
query.put("item_name", json.getString("item_name"));
DBCursor results = mongoTemplate.getCollection(COLLECTION_NAME).find(query);
if(null != results){
Iterator&DBObject& iterator = results.iterator();
while(iterator.hasNext()){
BasicDBObject obj = (BasicDBObject) iterator.next();
BuzzElement itemInfo = new BuzzElement();
itemInfo = BeanUtil.dbObject2Bean(obj, itemInfo);
list.add(itemInfo);
/* (non-Javadoc)
* @see com.roomdis.center.mongo.service.IBuzzElementService#save(com.roomdis.center.mongo.model.BuzzElement)
public int save(BuzzElement itemInfo) throws Exception {
DBCollection collection = this.mongoTemplate.getCollection(COLLECTION_NAME);
int result = <span style="color: #;
DBObject iteminfoObj = BeanUtil.bean2DBObject(itemInfo);
//iteminfoObj.removeField("serialVersionUID");
//result = collection.insert(iteminfoObj).getN();
WriteResult writeResult = collection.save(iteminfoObj);
result = writeResult.getN();
/* (non-Javadoc)
* @see com.roomdis.center.mongo.service.IBuzzElementService#update(com.roomdis.center.mongo.model.BuzzElement)
public void update(BuzzElement intemInfo) throws Exception {
DBCollection collection = this.mongoTemplate.getCollection(COLLECTION_NAME);
BuzzElement queryItemInfo = new BuzzElement();
queryItemInfo.setItemId(intemInfo.getItemId());
DBObject itemInfoObj = BeanUtil.bean2DBObject(intemInfo);
DBObject query =
BeanUtil.bean2DBObject(queryItemInfo);
collection.update(query, itemInfoObj);
郑重说明,上述的javabean以及BeanUtil还有服务程序类,是参照网络资源,考虑到这些东西不是本博的重点,也不是关键,所以没有花时间在这个上面。
最后,我们写一个controller来模拟一下添加数据,查询数据以及更新数据,看看工作流程是否顺畅!
* @author "shihuc"
package com.roomdis.center.mongo.
import java.util.L
import javax.annotation.R
import javax.servlet.http.HttpServletR
import org.json.JSONO
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.ResponseB
import com.roomdis.center.mongo.model.BuzzE
import com.roomdis.center.mongo.service.IBuzzElementS
* @author chengsh05
@Controller
@RequestMapping("/mongo")
public class MongoOpController {
@Resource(name="buzzElementService")
private IBuzzElementS
@RequestMapping("/save")
@ResponseBody
public String doSave(HttpServletRequest req){
String itemName = req.getParameter("itemName");
String price = req.getParameter("price");
String desc = req.getParameter("desc");
BuzzElement be = new BuzzElement();
be.setItemName(itemName);
be.setDesc(desc);
be.setPrice(price);
bes.save(be);
} catch (Exception e) {
e.printStackTrace();
return "Save OK";
@RequestMapping("/find")
@ResponseBody
public String doFind(HttpServletRequest req){
String itemName = req.getParameter("itemName");
JSONObject json = new JSONObject();
json.putOnce("item_name", itemName);
List&BuzzElement& res = null;
res = bes.getItemInfo(json);
} catch (Exception e) {
e.printStackTrace();
return "Find OK: " + res.size() ;
@RequestMapping("/update")
@ResponseBody
public String doUpdate(HttpServletRequest req){
String itemName = req.getParameter("itemName");
String price = req.getParameter("price");
String desc = req.getParameter("desc");
BuzzElement be = new BuzzElement();
be.setItemName(itemName);
be.setDesc(desc);
be.setPrice(price);
bes.update(be);
} catch (Exception e) {
e.printStackTrace();
return "Update OK";
好了,代码都准备ok了,下面进行测试!
A.在浏览器地址栏执行:http://10.90.9.20:8080/RDcenter/mongo/save
数据库得到的数据:
& show collections
buzz_element
& db.buzz_element.find()
{ "_id" : ObjectId("<span style="color: #092f3e0ef2eb286cd7410a") }
B. 添加一条数据。在浏览器地址栏里面输入: http://10.90.9.20:8080/RDcenter/mongo/save?itemName=iphone7&price=7000&desc=good product, everyone loves it
数据库得到的数据:
& db.buzz_element.find()
{ "_id" : ObjectId("<span style="color: #092f3e0ef2eb286cd7410a") }
{ "_id" : ObjectId("<span style="color: #eb286cd7410b"), "item_name" : "iphone7", "price" : "<span style="color: #00", "desc" : "good product, everyone loves it" }
再次添加一条数据,在浏览器地址栏里面输入: http://10.90.9.20:8080/RDcenter/mongo/save?itemName=S8&price=8000&desc=samsung new product
数据库得到的数据:
& db.buzz_element.find()
{ "_id" : ObjectId("<span style="color: #092f3e0ef2eb286cd7410a") }
{ "_id" : ObjectId("<span style="color: #eb286cd7410b"), "item_name" : "iphone7", "price" : "<span style="color: #00", "desc" : "good product, everyone loves it" }
{ "_id" : ObjectId("<span style="color: #eb1bf8d04d70"), "item_name" : "S8", "price" : "<span style="color: #00", "desc" : "samsung new product" }
C.查询数据,在浏览器地址栏输入:http://10.90.9.20:8080/RDcenter/mongo/find?itemName=S8
最终,浏览器上得到的返回结果是:
D. 更新数据,在浏览器地址栏输入:http://10.90.9.20:8080/RDcenter/mongo/update?itemName=S8&price=9000&desc=hope it is nice
更新前的数据库数据:
& db.buzz_element.find()
{ "_id" : ObjectId("<span style="color: #092f3e0ef2eb286cd7410a"), "item_name" : "iphone7", "desc" : "not everyone will buy it" }
{ "_id" : ObjectId("<span style="color: #eb286cd7410b"), "item_name" : "iphone7", "price" : "<span style="color: #00", "desc" : "good product, everyone loves it" }
{ "_id" : ObjectId("<span style="color: #eb1bf8d04d70"), "item_name" : "S8", "price" : "<span style="color: #00", "desc" : "samsung new product" }
更新后的数据库数据:
& db.buzz_element.find()
{ "_id" : ObjectId("<span style="color: #092f3e0ef2eb286cd7410a"), "item_name" : "S8", "price" : "<span style="color: #00", "desc" : "hope it is nice" }
{ "_id" : ObjectId("<span style="color: #eb286cd7410b"), "item_name" : "iphone7", "price" : "<span style="color: #00", "desc" : "good product, everyone loves it" }
{ "_id" : ObjectId("<span style="color: #eb1bf8d04d70"), "item_name" : "S8", "price" : "<span style="color: #00", "desc" : "samsung new product" }
从上面看,数据库是更新了,但是貌似有点逻辑问题,将第一个更新了,我们希望是将既有的item_name为S8产品数据更新的,这个是业务逻辑问题,暂且不做修改了。。。
从上面的全部过程来看,基于spring+mongodb的集成工作,完美结束,也很简单。
剩下来的,重点是mongodb的增删改查相关的接口研究,是个熟悉的过程,各位朋友,建议去看官网的资料。}

我要回帖

更多关于 com.mongodb jar 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信