struts2+ spring +hibernate+ mongodb
业务升级需要用到mongodb存储一些信息。但是网上找不到说明,最近弄好了写个帖子记录一下配置的过程。免得以后忘了。
其实就是简单的spring+mongodb而已。不过网上全是maven,但是这个工程很久又没升级一开始配置各种问题。
好了下面开始说明:
首先要准备好几个jar包:
spring-core-4.3.0.RELEASE.jar
spring-data-commons-1.10.0.RELEASE.jar
spring-data-mongodb-1.5.2.RELEASE.jar
mongo-java-driver-2.13.0.jar(这个不确定是不是必要的,但上面的少一个都会启动失败)
加到工程lib文件夹里,如果工具不会自动加载那就需要自己去工程属性里配置一下啦
新建mongo.properties(mongodb属性配置文件)
#mongodb的地址和端口
mongo.hostport=192.168.1.107:27017
#库的名称
mongo.dbname=db_test
#用户
mongo.username=cas-config
#密码
mongo.password=123456
mongo.connectionsPerHost=20
mongo.threadsAllowedToBlockForConnectionMultiplier=4
mongo.connectTimeout=20000
mongo.maxWaitTime=15000
mongo.autoConnectRetry=true
mongo.socketKeepAlive=true
mongo.socketTimeout=15000
mongo.slaveOk=true
新建spring-mongo.xml
<?xml version="1.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" xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 加载mongodb的属性配置文件 -->
<context:property-placeholder location="classpath:mongo.properties" />
<!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongo,replica-set设置集群副本的ip地址和端口 -->
<mongo:mongo id="mongo" replica-set="${mongo.hostport}">
<!-- 一些连接属性的设置 -->
<mongo:options
connections-per-host="${mongo.connectionsPerHost}"
threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
connect-timeout="${mongo.connectTimeout}"
max-wait-time="${mongo.maxWaitTime}"
auto-connect-retry="${mongo.autoConnectRetry}"
socket-keep-alive="${mongo.socketKeepAlive}"
socket-timeout="${mongo.socketTimeout}"
slave-ok="${mongo.slaveOk}"
write-number="1"
write-timeout="0"
write-fsync="true"/>
</mongo:mongo>
<mongo:db-factory dbname="${mongo.dbname}" mongo-ref="mongo" username="${mongo.username}"
password="${mongo.password}"/>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo"/>
<constructor-arg name="databaseName" value="${mongo.dbname}"/>
<constructor-arg ref="userCredentials"/>
</bean>
<bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
<constructor-arg name="username" value="${mongo.username}"/>
<constructor-arg name="password" value="${mongo.password}"/>
</bean>
</beans>
最后在applicationContext.xml导入mongodb的配置文件
<import resource="spring-mongo.xml" />
配置好自动检测扫描,详细的配置网上很多自行搜索。
<!-- 使用 annotation -->
<context:annotation-config />
<!-- 使用 annotation 自动注册bean,并检查@Controller, @Service, @Repository注解已被注入 -->
<context:component-scan base-package="com.demo" />
配置到这里就完成了。其他新建对象,Dao层什么的和一般的没差。我这里就不多讲,只是记录一下配置的过程。写的有点粗糙,不过大概就是这样子。