最近公司需要使用mongodb,查阅资料后感觉用spring集成比较方便。于是搞了一下spring-data-mongodb,文章教程引用以下大神的
http://blog.csdn.net/tuzongxun/article/details/51404529
在此贴出几个遇到的问题以示警戒:
1、
<!-- spring连接mongodb数据库的配置 -->
<mongo:mongo-client host="localhost" port="27017" credentials="root:root@admin" id="mongo">
<mongo:client-options write-concern="SAFE"/>
</mongo:mongo-client>
<mongo:db-factory id="mongoDbFactory" dbname="testDB" mongo-ref="mongo" />
<!-- 只要使用这个调用相应的方法操作 -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>
连接mongo采用了用户名密码控制,由于用户是建在admin下故而必须连接admin数据库。使用时将admin改为test出现了以上错误。
2、spring bean 初始化错误,由于未在spring中自动装载相关dao导致mongoTemplate无法完成装载,一直空指针异常。引入代码如下:
<context:component-scan base-package="com.secyta.casdata.modules.test.dao.UserDaoImpl" />
3、java.lang.NoSuchMethodError:org.springframework.data.mongodb.core.mapping.MongoPersistentEntity.getPropertyAccessor(Ljava/lang/Object;)Lorg/springframework/data/mapping/PersistentPropertyAccessor;
使用spring-data-mongo需要导入spring-data-mongodb和spring-data-commons此处是由于spring-data-commons未被导入,或者导入多个造成冲突引起的。